/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/styles/basic.scss ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
/**
 * Applies or overrides default styles of the HTML elements for a more predictable
 * and convenient behavior in different browsers.
 */
/**
 * Sets font and basic typography styles for the main HTML elements.
 */
/**
 * Provides global class names for the custom responsive grid system with flexible columns
 * and configurable columns count, container with maximum content width
 * and modifiers for alignment.
 * Grid system parameters can be customized in grid settings file.
 */
/**
 * Implements simple animations.
 */
/*!
 * Font Awesome Pro 5.15.4 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license (Commercial License)
 */
.fa,
.fas,
.far,
.fal,
.fad,
.fab {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  display: inline-block;
  font-style: normal;
  font-variant: normal;
  text-rendering: auto;
  line-height: 1;
}

.fa-lg {
  font-size: 1.3333333333em;
  line-height: 0.75em;
  vertical-align: -0.0667em;
}

.fa-xs {
  font-size: 0.75em;
}

.fa-sm {
  font-size: 0.875em;
}

.fa-1x {
  font-size: 1em;
}

.fa-2x {
  font-size: 2em;
}

.fa-3x {
  font-size: 3em;
}

.fa-4x {
  font-size: 4em;
}

.fa-5x {
  font-size: 5em;
}

.fa-6x {
  font-size: 6em;
}

.fa-7x {
  font-size: 7em;
}

.fa-8x {
  font-size: 8em;
}

.fa-9x {
  font-size: 9em;
}

.fa-10x {
  font-size: 10em;
}

.fa-fw {
  text-align: center;
  width: 1.25em;
}

.fa-ul {
  list-style-type: none;
  margin-left: 1.5em;
  padding-left: 0;
}
.fa-ul > li {
  position: relative;
}

.fa-li {
  left: -1.5em;
  position: absolute;
  text-align: center;
  width: 1.25em;
  line-height: inherit;
}

.fa-border {
  border: solid 0.08em #eee;
  border-radius: 0.1em;
  padding: 0.2em 0.25em 0.15em;
}

.fa-pull-left {
  float: left;
}

.fa-pull-right {
  float: right;
}

.fa.fa-pull-left,
.fas.fa-pull-left,
.far.fa-pull-left,
.fal.fa-pull-left,
.fab.fa-pull-left {
  margin-right: 0.3em;
}
.fa.fa-pull-right,
.fas.fa-pull-right,
.far.fa-pull-right,
.fal.fa-pull-right,
.fab.fa-pull-right {
  margin-left: 0.3em;
}

.fa-spin {
  -webkit-animation: fa-spin 2s infinite linear;
          animation: fa-spin 2s infinite linear;
}

.fa-pulse {
  -webkit-animation: fa-spin 1s infinite steps(8);
          animation: fa-spin 1s infinite steps(8);
}

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

@keyframes fa-spin {
  0% {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}
.fa-rotate-90 {
  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";
  -webkit-transform: rotate(90deg);
          transform: rotate(90deg);
}

.fa-rotate-180 {
  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg);
}

.fa-rotate-270 {
  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";
  -webkit-transform: rotate(270deg);
          transform: rotate(270deg);
}

.fa-flip-horizontal {
  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";
  -webkit-transform: scale(-1, 1);
          transform: scale(-1, 1);
}

.fa-flip-vertical {
  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
  -webkit-transform: scale(1, -1);
          transform: scale(1, -1);
}

.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {
  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
  -webkit-transform: scale(-1, -1);
          transform: scale(-1, -1);
}

:root .fa-rotate-90,
:root .fa-rotate-180,
:root .fa-rotate-270,
:root .fa-flip-horizontal,
:root .fa-flip-vertical,
:root .fa-flip-both {
  -webkit-filter: none;
          filter: none;
}

.fa-stack {
  display: inline-block;
  height: 2em;
  line-height: 2em;
  position: relative;
  vertical-align: middle;
  width: 2.5em;
}

.fa-stack-1x,
.fa-stack-2x {
  left: 0;
  position: absolute;
  text-align: center;
  width: 100%;
}

.fa-stack-1x {
  line-height: inherit;
}

.fa-stack-2x {
  font-size: 2em;
}

.fa-inverse {
  color: #fff;
}

/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
readers do not read off random characters that represent icons */
.fa-500px:before {
  content: "\f26e";
}

.fa-abacus:before {
  content: "\f640";
}

.fa-accessible-icon:before {
  content: "\f368";
}

.fa-accusoft:before {
  content: "\f369";
}

.fa-acorn:before {
  content: "\f6ae";
}

.fa-acquisitions-incorporated:before {
  content: "\f6af";
}

.fa-ad:before {
  content: "\f641";
}

.fa-address-book:before {
  content: "\f2b9";
}

.fa-address-card:before {
  content: "\f2bb";
}

.fa-adjust:before {
  content: "\f042";
}

.fa-adn:before {
  content: "\f170";
}

.fa-adversal:before {
  content: "\f36a";
}

.fa-affiliatetheme:before {
  content: "\f36b";
}

.fa-air-conditioner:before {
  content: "\f8f4";
}

.fa-air-freshener:before {
  content: "\f5d0";
}

.fa-airbnb:before {
  content: "\f834";
}

.fa-alarm-clock:before {
  content: "\f34e";
}

.fa-alarm-exclamation:before {
  content: "\f843";
}

.fa-alarm-plus:before {
  content: "\f844";
}

.fa-alarm-snooze:before {
  content: "\f845";
}

.fa-album:before {
  content: "\f89f";
}

.fa-album-collection:before {
  content: "\f8a0";
}

.fa-algolia:before {
  content: "\f36c";
}

.fa-alicorn:before {
  content: "\f6b0";
}

.fa-alien:before {
  content: "\f8f5";
}

.fa-alien-monster:before {
  content: "\f8f6";
}

.fa-align-center:before {
  content: "\f037";
}

.fa-align-justify:before {
  content: "\f039";
}

.fa-align-left:before {
  content: "\f036";
}

.fa-align-right:before {
  content: "\f038";
}

.fa-align-slash:before {
  content: "\f846";
}

.fa-alipay:before {
  content: "\f642";
}

.fa-allergies:before {
  content: "\f461";
}

.fa-amazon:before {
  content: "\f270";
}

.fa-amazon-pay:before {
  content: "\f42c";
}

.fa-ambulance:before {
  content: "\f0f9";
}

.fa-american-sign-language-interpreting:before {
  content: "\f2a3";
}

.fa-amilia:before {
  content: "\f36d";
}

.fa-amp-guitar:before {
  content: "\f8a1";
}

.fa-analytics:before {
  content: "\f643";
}

.fa-anchor:before {
  content: "\f13d";
}

.fa-android:before {
  content: "\f17b";
}

.fa-angel:before {
  content: "\f779";
}

.fa-angellist:before {
  content: "\f209";
}

.fa-angle-double-down:before {
  content: "\f103";
}

.fa-angle-double-left:before {
  content: "\f100";
}

.fa-angle-double-right:before {
  content: "\f101";
}

.fa-angle-double-up:before {
  content: "\f102";
}

.fa-angle-down:before {
  content: "\f107";
}

.fa-angle-left:before {
  content: "\f104";
}

.fa-angle-right:before {
  content: "\f105";
}

.fa-angle-up:before {
  content: "\f106";
}

.fa-angry:before {
  content: "\f556";
}

.fa-angrycreative:before {
  content: "\f36e";
}

.fa-angular:before {
  content: "\f420";
}

.fa-ankh:before {
  content: "\f644";
}

.fa-app-store:before {
  content: "\f36f";
}

.fa-app-store-ios:before {
  content: "\f370";
}

.fa-apper:before {
  content: "\f371";
}

.fa-apple:before {
  content: "\f179";
}

.fa-apple-alt:before {
  content: "\f5d1";
}

.fa-apple-crate:before {
  content: "\f6b1";
}

.fa-apple-pay:before {
  content: "\f415";
}

.fa-archive:before {
  content: "\f187";
}

.fa-archway:before {
  content: "\f557";
}

.fa-arrow-alt-circle-down:before {
  content: "\f358";
}

.fa-arrow-alt-circle-left:before {
  content: "\f359";
}

.fa-arrow-alt-circle-right:before {
  content: "\f35a";
}

.fa-arrow-alt-circle-up:before {
  content: "\f35b";
}

.fa-arrow-alt-down:before {
  content: "\f354";
}

.fa-arrow-alt-from-bottom:before {
  content: "\f346";
}

.fa-arrow-alt-from-left:before {
  content: "\f347";
}

.fa-arrow-alt-from-right:before {
  content: "\f348";
}

.fa-arrow-alt-from-top:before {
  content: "\f349";
}

.fa-arrow-alt-left:before {
  content: "\f355";
}

.fa-arrow-alt-right:before {
  content: "\f356";
}

.fa-arrow-alt-square-down:before {
  content: "\f350";
}

.fa-arrow-alt-square-left:before {
  content: "\f351";
}

.fa-arrow-alt-square-right:before {
  content: "\f352";
}

.fa-arrow-alt-square-up:before {
  content: "\f353";
}

.fa-arrow-alt-to-bottom:before {
  content: "\f34a";
}

.fa-arrow-alt-to-left:before {
  content: "\f34b";
}

.fa-arrow-alt-to-right:before {
  content: "\f34c";
}

.fa-arrow-alt-to-top:before {
  content: "\f34d";
}

.fa-arrow-alt-up:before {
  content: "\f357";
}

.fa-arrow-circle-down:before {
  content: "\f0ab";
}

.fa-arrow-circle-left:before {
  content: "\f0a8";
}

.fa-arrow-circle-right:before {
  content: "\f0a9";
}

.fa-arrow-circle-up:before {
  content: "\f0aa";
}

.fa-arrow-down:before {
  content: "\f063";
}

.fa-arrow-from-bottom:before {
  content: "\f342";
}

.fa-arrow-from-left:before {
  content: "\f343";
}

.fa-arrow-from-right:before {
  content: "\f344";
}

.fa-arrow-from-top:before {
  content: "\f345";
}

.fa-arrow-left:before {
  content: "\f060";
}

.fa-arrow-right:before {
  content: "\f061";
}

.fa-arrow-square-down:before {
  content: "\f339";
}

.fa-arrow-square-left:before {
  content: "\f33a";
}

.fa-arrow-square-right:before {
  content: "\f33b";
}

.fa-arrow-square-up:before {
  content: "\f33c";
}

.fa-arrow-to-bottom:before {
  content: "\f33d";
}

.fa-arrow-to-left:before {
  content: "\f33e";
}

.fa-arrow-to-right:before {
  content: "\f340";
}

.fa-arrow-to-top:before {
  content: "\f341";
}

.fa-arrow-up:before {
  content: "\f062";
}

.fa-arrows:before {
  content: "\f047";
}

.fa-arrows-alt:before {
  content: "\f0b2";
}

.fa-arrows-alt-h:before {
  content: "\f337";
}

.fa-arrows-alt-v:before {
  content: "\f338";
}

.fa-arrows-h:before {
  content: "\f07e";
}

.fa-arrows-v:before {
  content: "\f07d";
}

.fa-artstation:before {
  content: "\f77a";
}

.fa-assistive-listening-systems:before {
  content: "\f2a2";
}

.fa-asterisk:before {
  content: "\f069";
}

.fa-asymmetrik:before {
  content: "\f372";
}

.fa-at:before {
  content: "\f1fa";
}

.fa-atlas:before {
  content: "\f558";
}

.fa-atlassian:before {
  content: "\f77b";
}

.fa-atom:before {
  content: "\f5d2";
}

.fa-atom-alt:before {
  content: "\f5d3";
}

.fa-audible:before {
  content: "\f373";
}

.fa-audio-description:before {
  content: "\f29e";
}

.fa-autoprefixer:before {
  content: "\f41c";
}

.fa-avianex:before {
  content: "\f374";
}

.fa-aviato:before {
  content: "\f421";
}

.fa-award:before {
  content: "\f559";
}

.fa-aws:before {
  content: "\f375";
}

.fa-axe:before {
  content: "\f6b2";
}

.fa-axe-battle:before {
  content: "\f6b3";
}

.fa-baby:before {
  content: "\f77c";
}

.fa-baby-carriage:before {
  content: "\f77d";
}

.fa-backpack:before {
  content: "\f5d4";
}

.fa-backspace:before {
  content: "\f55a";
}

.fa-backward:before {
  content: "\f04a";
}

.fa-bacon:before {
  content: "\f7e5";
}

.fa-bacteria:before {
  content: "\e059";
}

.fa-bacterium:before {
  content: "\e05a";
}

.fa-badge:before {
  content: "\f335";
}

.fa-badge-check:before {
  content: "\f336";
}

.fa-badge-dollar:before {
  content: "\f645";
}

.fa-badge-percent:before {
  content: "\f646";
}

.fa-badge-sheriff:before {
  content: "\f8a2";
}

.fa-badger-honey:before {
  content: "\f6b4";
}

.fa-bags-shopping:before {
  content: "\f847";
}

.fa-bahai:before {
  content: "\f666";
}

.fa-balance-scale:before {
  content: "\f24e";
}

.fa-balance-scale-left:before {
  content: "\f515";
}

.fa-balance-scale-right:before {
  content: "\f516";
}

.fa-ball-pile:before {
  content: "\f77e";
}

.fa-ballot:before {
  content: "\f732";
}

.fa-ballot-check:before {
  content: "\f733";
}

.fa-ban:before {
  content: "\f05e";
}

.fa-band-aid:before {
  content: "\f462";
}

.fa-bandcamp:before {
  content: "\f2d5";
}

.fa-banjo:before {
  content: "\f8a3";
}

.fa-barcode:before {
  content: "\f02a";
}

.fa-barcode-alt:before {
  content: "\f463";
}

.fa-barcode-read:before {
  content: "\f464";
}

.fa-barcode-scan:before {
  content: "\f465";
}

.fa-bars:before {
  content: "\f0c9";
}

.fa-baseball:before {
  content: "\f432";
}

.fa-baseball-ball:before {
  content: "\f433";
}

.fa-basketball-ball:before {
  content: "\f434";
}

.fa-basketball-hoop:before {
  content: "\f435";
}

.fa-bat:before {
  content: "\f6b5";
}

.fa-bath:before {
  content: "\f2cd";
}

.fa-battery-bolt:before {
  content: "\f376";
}

.fa-battery-empty:before {
  content: "\f244";
}

.fa-battery-full:before {
  content: "\f240";
}

.fa-battery-half:before {
  content: "\f242";
}

.fa-battery-quarter:before {
  content: "\f243";
}

.fa-battery-slash:before {
  content: "\f377";
}

.fa-battery-three-quarters:before {
  content: "\f241";
}

.fa-battle-net:before {
  content: "\f835";
}

.fa-bed:before {
  content: "\f236";
}

.fa-bed-alt:before {
  content: "\f8f7";
}

.fa-bed-bunk:before {
  content: "\f8f8";
}

.fa-bed-empty:before {
  content: "\f8f9";
}

.fa-beer:before {
  content: "\f0fc";
}

.fa-behance:before {
  content: "\f1b4";
}

.fa-behance-square:before {
  content: "\f1b5";
}

.fa-bell:before {
  content: "\f0f3";
}

.fa-bell-exclamation:before {
  content: "\f848";
}

.fa-bell-on:before {
  content: "\f8fa";
}

.fa-bell-plus:before {
  content: "\f849";
}

.fa-bell-school:before {
  content: "\f5d5";
}

.fa-bell-school-slash:before {
  content: "\f5d6";
}

.fa-bell-slash:before {
  content: "\f1f6";
}

.fa-bells:before {
  content: "\f77f";
}

.fa-betamax:before {
  content: "\f8a4";
}

.fa-bezier-curve:before {
  content: "\f55b";
}

.fa-bible:before {
  content: "\f647";
}

.fa-bicycle:before {
  content: "\f206";
}

.fa-biking:before {
  content: "\f84a";
}

.fa-biking-mountain:before {
  content: "\f84b";
}

.fa-bimobject:before {
  content: "\f378";
}

.fa-binoculars:before {
  content: "\f1e5";
}

.fa-biohazard:before {
  content: "\f780";
}

.fa-birthday-cake:before {
  content: "\f1fd";
}

.fa-bitbucket:before {
  content: "\f171";
}

.fa-bitcoin:before {
  content: "\f379";
}

.fa-bity:before {
  content: "\f37a";
}

.fa-black-tie:before {
  content: "\f27e";
}

.fa-blackberry:before {
  content: "\f37b";
}

.fa-blanket:before {
  content: "\f498";
}

.fa-blender:before {
  content: "\f517";
}

.fa-blender-phone:before {
  content: "\f6b6";
}

.fa-blind:before {
  content: "\f29d";
}

.fa-blinds:before {
  content: "\f8fb";
}

.fa-blinds-open:before {
  content: "\f8fc";
}

.fa-blinds-raised:before {
  content: "\f8fd";
}

.fa-blog:before {
  content: "\f781";
}

.fa-blogger:before {
  content: "\f37c";
}

.fa-blogger-b:before {
  content: "\f37d";
}

.fa-bluetooth:before {
  content: "\f293";
}

.fa-bluetooth-b:before {
  content: "\f294";
}

.fa-bold:before {
  content: "\f032";
}

.fa-bolt:before {
  content: "\f0e7";
}

.fa-bomb:before {
  content: "\f1e2";
}

.fa-bone:before {
  content: "\f5d7";
}

.fa-bone-break:before {
  content: "\f5d8";
}

.fa-bong:before {
  content: "\f55c";
}

.fa-book:before {
  content: "\f02d";
}

.fa-book-alt:before {
  content: "\f5d9";
}

.fa-book-dead:before {
  content: "\f6b7";
}

.fa-book-heart:before {
  content: "\f499";
}

.fa-book-medical:before {
  content: "\f7e6";
}

.fa-book-open:before {
  content: "\f518";
}

.fa-book-reader:before {
  content: "\f5da";
}

.fa-book-spells:before {
  content: "\f6b8";
}

.fa-book-user:before {
  content: "\f7e7";
}

.fa-bookmark:before {
  content: "\f02e";
}

.fa-books:before {
  content: "\f5db";
}

.fa-books-medical:before {
  content: "\f7e8";
}

.fa-boombox:before {
  content: "\f8a5";
}

.fa-boot:before {
  content: "\f782";
}

.fa-booth-curtain:before {
  content: "\f734";
}

.fa-bootstrap:before {
  content: "\f836";
}

.fa-border-all:before {
  content: "\f84c";
}

.fa-border-bottom:before {
  content: "\f84d";
}

.fa-border-center-h:before {
  content: "\f89c";
}

.fa-border-center-v:before {
  content: "\f89d";
}

.fa-border-inner:before {
  content: "\f84e";
}

.fa-border-left:before {
  content: "\f84f";
}

.fa-border-none:before {
  content: "\f850";
}

.fa-border-outer:before {
  content: "\f851";
}

.fa-border-right:before {
  content: "\f852";
}

.fa-border-style:before {
  content: "\f853";
}

.fa-border-style-alt:before {
  content: "\f854";
}

.fa-border-top:before {
  content: "\f855";
}

.fa-bow-arrow:before {
  content: "\f6b9";
}

.fa-bowling-ball:before {
  content: "\f436";
}

.fa-bowling-pins:before {
  content: "\f437";
}

.fa-box:before {
  content: "\f466";
}

.fa-box-alt:before {
  content: "\f49a";
}

.fa-box-ballot:before {
  content: "\f735";
}

.fa-box-check:before {
  content: "\f467";
}

.fa-box-fragile:before {
  content: "\f49b";
}

.fa-box-full:before {
  content: "\f49c";
}

.fa-box-heart:before {
  content: "\f49d";
}

.fa-box-open:before {
  content: "\f49e";
}

.fa-box-tissue:before {
  content: "\e05b";
}

.fa-box-up:before {
  content: "\f49f";
}

.fa-box-usd:before {
  content: "\f4a0";
}

.fa-boxes:before {
  content: "\f468";
}

.fa-boxes-alt:before {
  content: "\f4a1";
}

.fa-boxing-glove:before {
  content: "\f438";
}

.fa-brackets:before {
  content: "\f7e9";
}

.fa-brackets-curly:before {
  content: "\f7ea";
}

.fa-braille:before {
  content: "\f2a1";
}

.fa-brain:before {
  content: "\f5dc";
}

.fa-bread-loaf:before {
  content: "\f7eb";
}

.fa-bread-slice:before {
  content: "\f7ec";
}

.fa-briefcase:before {
  content: "\f0b1";
}

.fa-briefcase-medical:before {
  content: "\f469";
}

.fa-bring-forward:before {
  content: "\f856";
}

.fa-bring-front:before {
  content: "\f857";
}

.fa-broadcast-tower:before {
  content: "\f519";
}

.fa-broom:before {
  content: "\f51a";
}

.fa-browser:before {
  content: "\f37e";
}

.fa-brush:before {
  content: "\f55d";
}

.fa-btc:before {
  content: "\f15a";
}

.fa-buffer:before {
  content: "\f837";
}

.fa-bug:before {
  content: "\f188";
}

.fa-building:before {
  content: "\f1ad";
}

.fa-bullhorn:before {
  content: "\f0a1";
}

.fa-bullseye:before {
  content: "\f140";
}

.fa-bullseye-arrow:before {
  content: "\f648";
}

.fa-bullseye-pointer:before {
  content: "\f649";
}

.fa-burger-soda:before {
  content: "\f858";
}

.fa-burn:before {
  content: "\f46a";
}

.fa-buromobelexperte:before {
  content: "\f37f";
}

.fa-burrito:before {
  content: "\f7ed";
}

.fa-bus:before {
  content: "\f207";
}

.fa-bus-alt:before {
  content: "\f55e";
}

.fa-bus-school:before {
  content: "\f5dd";
}

.fa-business-time:before {
  content: "\f64a";
}

.fa-buy-n-large:before {
  content: "\f8a6";
}

.fa-buysellads:before {
  content: "\f20d";
}

.fa-cabinet-filing:before {
  content: "\f64b";
}

.fa-cactus:before {
  content: "\f8a7";
}

.fa-calculator:before {
  content: "\f1ec";
}

.fa-calculator-alt:before {
  content: "\f64c";
}

.fa-calendar:before {
  content: "\f133";
}

.fa-calendar-alt:before {
  content: "\f073";
}

.fa-calendar-check:before {
  content: "\f274";
}

.fa-calendar-day:before {
  content: "\f783";
}

.fa-calendar-edit:before {
  content: "\f333";
}

.fa-calendar-exclamation:before {
  content: "\f334";
}

.fa-calendar-minus:before {
  content: "\f272";
}

.fa-calendar-plus:before {
  content: "\f271";
}

.fa-calendar-star:before {
  content: "\f736";
}

.fa-calendar-times:before {
  content: "\f273";
}

.fa-calendar-week:before {
  content: "\f784";
}

.fa-camcorder:before {
  content: "\f8a8";
}

.fa-camera:before {
  content: "\f030";
}

.fa-camera-alt:before {
  content: "\f332";
}

.fa-camera-home:before {
  content: "\f8fe";
}

.fa-camera-movie:before {
  content: "\f8a9";
}

.fa-camera-polaroid:before {
  content: "\f8aa";
}

.fa-camera-retro:before {
  content: "\f083";
}

.fa-campfire:before {
  content: "\f6ba";
}

.fa-campground:before {
  content: "\f6bb";
}

.fa-canadian-maple-leaf:before {
  content: "\f785";
}

.fa-candle-holder:before {
  content: "\f6bc";
}

.fa-candy-cane:before {
  content: "\f786";
}

.fa-candy-corn:before {
  content: "\f6bd";
}

.fa-cannabis:before {
  content: "\f55f";
}

.fa-capsules:before {
  content: "\f46b";
}

.fa-car:before {
  content: "\f1b9";
}

.fa-car-alt:before {
  content: "\f5de";
}

.fa-car-battery:before {
  content: "\f5df";
}

.fa-car-building:before {
  content: "\f859";
}

.fa-car-bump:before {
  content: "\f5e0";
}

.fa-car-bus:before {
  content: "\f85a";
}

.fa-car-crash:before {
  content: "\f5e1";
}

.fa-car-garage:before {
  content: "\f5e2";
}

.fa-car-mechanic:before {
  content: "\f5e3";
}

.fa-car-side:before {
  content: "\f5e4";
}

.fa-car-tilt:before {
  content: "\f5e5";
}

.fa-car-wash:before {
  content: "\f5e6";
}

.fa-caravan:before {
  content: "\f8ff";
}

.fa-caravan-alt:before {
  content: "\e000";
}

.fa-caret-circle-down:before {
  content: "\f32d";
}

.fa-caret-circle-left:before {
  content: "\f32e";
}

.fa-caret-circle-right:before {
  content: "\f330";
}

.fa-caret-circle-up:before {
  content: "\f331";
}

.fa-caret-down:before {
  content: "\f0d7";
}

.fa-caret-left:before {
  content: "\f0d9";
}

.fa-caret-right:before {
  content: "\f0da";
}

.fa-caret-square-down:before {
  content: "\f150";
}

.fa-caret-square-left:before {
  content: "\f191";
}

.fa-caret-square-right:before {
  content: "\f152";
}

.fa-caret-square-up:before {
  content: "\f151";
}

.fa-caret-up:before {
  content: "\f0d8";
}

.fa-carrot:before {
  content: "\f787";
}

.fa-cars:before {
  content: "\f85b";
}

.fa-cart-arrow-down:before {
  content: "\f218";
}

.fa-cart-plus:before {
  content: "\f217";
}

.fa-cash-register:before {
  content: "\f788";
}

.fa-cassette-tape:before {
  content: "\f8ab";
}

.fa-cat:before {
  content: "\f6be";
}

.fa-cat-space:before {
  content: "\e001";
}

.fa-cauldron:before {
  content: "\f6bf";
}

.fa-cc-amazon-pay:before {
  content: "\f42d";
}

.fa-cc-amex:before {
  content: "\f1f3";
}

.fa-cc-apple-pay:before {
  content: "\f416";
}

.fa-cc-diners-club:before {
  content: "\f24c";
}

.fa-cc-discover:before {
  content: "\f1f2";
}

.fa-cc-jcb:before {
  content: "\f24b";
}

.fa-cc-mastercard:before {
  content: "\f1f1";
}

.fa-cc-paypal:before {
  content: "\f1f4";
}

.fa-cc-stripe:before {
  content: "\f1f5";
}

.fa-cc-visa:before {
  content: "\f1f0";
}

.fa-cctv:before {
  content: "\f8ac";
}

.fa-centercode:before {
  content: "\f380";
}

.fa-centos:before {
  content: "\f789";
}

.fa-certificate:before {
  content: "\f0a3";
}

.fa-chair:before {
  content: "\f6c0";
}

.fa-chair-office:before {
  content: "\f6c1";
}

.fa-chalkboard:before {
  content: "\f51b";
}

.fa-chalkboard-teacher:before {
  content: "\f51c";
}

.fa-charging-station:before {
  content: "\f5e7";
}

.fa-chart-area:before {
  content: "\f1fe";
}

.fa-chart-bar:before {
  content: "\f080";
}

.fa-chart-line:before {
  content: "\f201";
}

.fa-chart-line-down:before {
  content: "\f64d";
}

.fa-chart-network:before {
  content: "\f78a";
}

.fa-chart-pie:before {
  content: "\f200";
}

.fa-chart-pie-alt:before {
  content: "\f64e";
}

.fa-chart-scatter:before {
  content: "\f7ee";
}

.fa-check:before {
  content: "\f00c";
}

.fa-check-circle:before {
  content: "\f058";
}

.fa-check-double:before {
  content: "\f560";
}

.fa-check-square:before {
  content: "\f14a";
}

.fa-cheese:before {
  content: "\f7ef";
}

.fa-cheese-swiss:before {
  content: "\f7f0";
}

.fa-cheeseburger:before {
  content: "\f7f1";
}

.fa-chess:before {
  content: "\f439";
}

.fa-chess-bishop:before {
  content: "\f43a";
}

.fa-chess-bishop-alt:before {
  content: "\f43b";
}

.fa-chess-board:before {
  content: "\f43c";
}

.fa-chess-clock:before {
  content: "\f43d";
}

.fa-chess-clock-alt:before {
  content: "\f43e";
}

.fa-chess-king:before {
  content: "\f43f";
}

.fa-chess-king-alt:before {
  content: "\f440";
}

.fa-chess-knight:before {
  content: "\f441";
}

.fa-chess-knight-alt:before {
  content: "\f442";
}

.fa-chess-pawn:before {
  content: "\f443";
}

.fa-chess-pawn-alt:before {
  content: "\f444";
}

.fa-chess-queen:before {
  content: "\f445";
}

.fa-chess-queen-alt:before {
  content: "\f446";
}

.fa-chess-rook:before {
  content: "\f447";
}

.fa-chess-rook-alt:before {
  content: "\f448";
}

.fa-chevron-circle-down:before {
  content: "\f13a";
}

.fa-chevron-circle-left:before {
  content: "\f137";
}

.fa-chevron-circle-right:before {
  content: "\f138";
}

.fa-chevron-circle-up:before {
  content: "\f139";
}

.fa-chevron-double-down:before {
  content: "\f322";
}

.fa-chevron-double-left:before {
  content: "\f323";
}

.fa-chevron-double-right:before {
  content: "\f324";
}

.fa-chevron-double-up:before {
  content: "\f325";
}

.fa-chevron-down:before {
  content: "\f078";
}

.fa-chevron-left:before {
  content: "\f053";
}

.fa-chevron-right:before {
  content: "\f054";
}

.fa-chevron-square-down:before {
  content: "\f329";
}

.fa-chevron-square-left:before {
  content: "\f32a";
}

.fa-chevron-square-right:before {
  content: "\f32b";
}

.fa-chevron-square-up:before {
  content: "\f32c";
}

.fa-chevron-up:before {
  content: "\f077";
}

.fa-child:before {
  content: "\f1ae";
}

.fa-chimney:before {
  content: "\f78b";
}

.fa-chrome:before {
  content: "\f268";
}

.fa-chromecast:before {
  content: "\f838";
}

.fa-church:before {
  content: "\f51d";
}

.fa-circle:before {
  content: "\f111";
}

.fa-circle-notch:before {
  content: "\f1ce";
}

.fa-city:before {
  content: "\f64f";
}

.fa-clarinet:before {
  content: "\f8ad";
}

.fa-claw-marks:before {
  content: "\f6c2";
}

.fa-clinic-medical:before {
  content: "\f7f2";
}

.fa-clipboard:before {
  content: "\f328";
}

.fa-clipboard-check:before {
  content: "\f46c";
}

.fa-clipboard-list:before {
  content: "\f46d";
}

.fa-clipboard-list-check:before {
  content: "\f737";
}

.fa-clipboard-prescription:before {
  content: "\f5e8";
}

.fa-clipboard-user:before {
  content: "\f7f3";
}

.fa-clock:before {
  content: "\f017";
}

.fa-clone:before {
  content: "\f24d";
}

.fa-closed-captioning:before {
  content: "\f20a";
}

.fa-cloud:before {
  content: "\f0c2";
}

.fa-cloud-download:before {
  content: "\f0ed";
}

.fa-cloud-download-alt:before {
  content: "\f381";
}

.fa-cloud-drizzle:before {
  content: "\f738";
}

.fa-cloud-hail:before {
  content: "\f739";
}

.fa-cloud-hail-mixed:before {
  content: "\f73a";
}

.fa-cloud-meatball:before {
  content: "\f73b";
}

.fa-cloud-moon:before {
  content: "\f6c3";
}

.fa-cloud-moon-rain:before {
  content: "\f73c";
}

.fa-cloud-music:before {
  content: "\f8ae";
}

.fa-cloud-rain:before {
  content: "\f73d";
}

.fa-cloud-rainbow:before {
  content: "\f73e";
}

.fa-cloud-showers:before {
  content: "\f73f";
}

.fa-cloud-showers-heavy:before {
  content: "\f740";
}

.fa-cloud-sleet:before {
  content: "\f741";
}

.fa-cloud-snow:before {
  content: "\f742";
}

.fa-cloud-sun:before {
  content: "\f6c4";
}

.fa-cloud-sun-rain:before {
  content: "\f743";
}

.fa-cloud-upload:before {
  content: "\f0ee";
}

.fa-cloud-upload-alt:before {
  content: "\f382";
}

.fa-cloudflare:before {
  content: "\e07d";
}

.fa-clouds:before {
  content: "\f744";
}

.fa-clouds-moon:before {
  content: "\f745";
}

.fa-clouds-sun:before {
  content: "\f746";
}

.fa-cloudscale:before {
  content: "\f383";
}

.fa-cloudsmith:before {
  content: "\f384";
}

.fa-cloudversify:before {
  content: "\f385";
}

.fa-club:before {
  content: "\f327";
}

.fa-cocktail:before {
  content: "\f561";
}

.fa-code:before {
  content: "\f121";
}

.fa-code-branch:before {
  content: "\f126";
}

.fa-code-commit:before {
  content: "\f386";
}

.fa-code-merge:before {
  content: "\f387";
}

.fa-codepen:before {
  content: "\f1cb";
}

.fa-codiepie:before {
  content: "\f284";
}

.fa-coffee:before {
  content: "\f0f4";
}

.fa-coffee-pot:before {
  content: "\e002";
}

.fa-coffee-togo:before {
  content: "\f6c5";
}

.fa-coffin:before {
  content: "\f6c6";
}

.fa-coffin-cross:before {
  content: "\e051";
}

.fa-cog:before {
  content: "\f013";
}

.fa-cogs:before {
  content: "\f085";
}

.fa-coin:before {
  content: "\f85c";
}

.fa-coins:before {
  content: "\f51e";
}

.fa-columns:before {
  content: "\f0db";
}

.fa-comet:before {
  content: "\e003";
}

.fa-comment:before {
  content: "\f075";
}

.fa-comment-alt:before {
  content: "\f27a";
}

.fa-comment-alt-check:before {
  content: "\f4a2";
}

.fa-comment-alt-dollar:before {
  content: "\f650";
}

.fa-comment-alt-dots:before {
  content: "\f4a3";
}

.fa-comment-alt-edit:before {
  content: "\f4a4";
}

.fa-comment-alt-exclamation:before {
  content: "\f4a5";
}

.fa-comment-alt-lines:before {
  content: "\f4a6";
}

.fa-comment-alt-medical:before {
  content: "\f7f4";
}

.fa-comment-alt-minus:before {
  content: "\f4a7";
}

.fa-comment-alt-music:before {
  content: "\f8af";
}

.fa-comment-alt-plus:before {
  content: "\f4a8";
}

.fa-comment-alt-slash:before {
  content: "\f4a9";
}

.fa-comment-alt-smile:before {
  content: "\f4aa";
}

.fa-comment-alt-times:before {
  content: "\f4ab";
}

.fa-comment-check:before {
  content: "\f4ac";
}

.fa-comment-dollar:before {
  content: "\f651";
}

.fa-comment-dots:before {
  content: "\f4ad";
}

.fa-comment-edit:before {
  content: "\f4ae";
}

.fa-comment-exclamation:before {
  content: "\f4af";
}

.fa-comment-lines:before {
  content: "\f4b0";
}

.fa-comment-medical:before {
  content: "\f7f5";
}

.fa-comment-minus:before {
  content: "\f4b1";
}

.fa-comment-music:before {
  content: "\f8b0";
}

.fa-comment-plus:before {
  content: "\f4b2";
}

.fa-comment-slash:before {
  content: "\f4b3";
}

.fa-comment-smile:before {
  content: "\f4b4";
}

.fa-comment-times:before {
  content: "\f4b5";
}

.fa-comments:before {
  content: "\f086";
}

.fa-comments-alt:before {
  content: "\f4b6";
}

.fa-comments-alt-dollar:before {
  content: "\f652";
}

.fa-comments-dollar:before {
  content: "\f653";
}

.fa-compact-disc:before {
  content: "\f51f";
}

.fa-compass:before {
  content: "\f14e";
}

.fa-compass-slash:before {
  content: "\f5e9";
}

.fa-compress:before {
  content: "\f066";
}

.fa-compress-alt:before {
  content: "\f422";
}

.fa-compress-arrows-alt:before {
  content: "\f78c";
}

.fa-compress-wide:before {
  content: "\f326";
}

.fa-computer-classic:before {
  content: "\f8b1";
}

.fa-computer-speaker:before {
  content: "\f8b2";
}

.fa-concierge-bell:before {
  content: "\f562";
}

.fa-confluence:before {
  content: "\f78d";
}

.fa-connectdevelop:before {
  content: "\f20e";
}

.fa-construction:before {
  content: "\f85d";
}

.fa-container-storage:before {
  content: "\f4b7";
}

.fa-contao:before {
  content: "\f26d";
}

.fa-conveyor-belt:before {
  content: "\f46e";
}

.fa-conveyor-belt-alt:before {
  content: "\f46f";
}

.fa-cookie:before {
  content: "\f563";
}

.fa-cookie-bite:before {
  content: "\f564";
}

.fa-copy:before {
  content: "\f0c5";
}

.fa-copyright:before {
  content: "\f1f9";
}

.fa-corn:before {
  content: "\f6c7";
}

.fa-cotton-bureau:before {
  content: "\f89e";
}

.fa-couch:before {
  content: "\f4b8";
}

.fa-cow:before {
  content: "\f6c8";
}

.fa-cowbell:before {
  content: "\f8b3";
}

.fa-cowbell-more:before {
  content: "\f8b4";
}

.fa-cpanel:before {
  content: "\f388";
}

.fa-creative-commons:before {
  content: "\f25e";
}

.fa-creative-commons-by:before {
  content: "\f4e7";
}

.fa-creative-commons-nc:before {
  content: "\f4e8";
}

.fa-creative-commons-nc-eu:before {
  content: "\f4e9";
}

.fa-creative-commons-nc-jp:before {
  content: "\f4ea";
}

.fa-creative-commons-nd:before {
  content: "\f4eb";
}

.fa-creative-commons-pd:before {
  content: "\f4ec";
}

.fa-creative-commons-pd-alt:before {
  content: "\f4ed";
}

.fa-creative-commons-remix:before {
  content: "\f4ee";
}

.fa-creative-commons-sa:before {
  content: "\f4ef";
}

.fa-creative-commons-sampling:before {
  content: "\f4f0";
}

.fa-creative-commons-sampling-plus:before {
  content: "\f4f1";
}

.fa-creative-commons-share:before {
  content: "\f4f2";
}

.fa-creative-commons-zero:before {
  content: "\f4f3";
}

.fa-credit-card:before {
  content: "\f09d";
}

.fa-credit-card-blank:before {
  content: "\f389";
}

.fa-credit-card-front:before {
  content: "\f38a";
}

.fa-cricket:before {
  content: "\f449";
}

.fa-critical-role:before {
  content: "\f6c9";
}

.fa-croissant:before {
  content: "\f7f6";
}

.fa-crop:before {
  content: "\f125";
}

.fa-crop-alt:before {
  content: "\f565";
}

.fa-cross:before {
  content: "\f654";
}

.fa-crosshairs:before {
  content: "\f05b";
}

.fa-crow:before {
  content: "\f520";
}

.fa-crown:before {
  content: "\f521";
}

.fa-crutch:before {
  content: "\f7f7";
}

.fa-crutches:before {
  content: "\f7f8";
}

.fa-css3:before {
  content: "\f13c";
}

.fa-css3-alt:before {
  content: "\f38b";
}

.fa-cube:before {
  content: "\f1b2";
}

.fa-cubes:before {
  content: "\f1b3";
}

.fa-curling:before {
  content: "\f44a";
}

.fa-cut:before {
  content: "\f0c4";
}

.fa-cuttlefish:before {
  content: "\f38c";
}

.fa-d-and-d:before {
  content: "\f38d";
}

.fa-d-and-d-beyond:before {
  content: "\f6ca";
}

.fa-dagger:before {
  content: "\f6cb";
}

.fa-dailymotion:before {
  content: "\e052";
}

.fa-dashcube:before {
  content: "\f210";
}

.fa-database:before {
  content: "\f1c0";
}

.fa-deaf:before {
  content: "\f2a4";
}

.fa-debug:before {
  content: "\f7f9";
}

.fa-deer:before {
  content: "\f78e";
}

.fa-deer-rudolph:before {
  content: "\f78f";
}

.fa-deezer:before {
  content: "\e077";
}

.fa-delicious:before {
  content: "\f1a5";
}

.fa-democrat:before {
  content: "\f747";
}

.fa-deploydog:before {
  content: "\f38e";
}

.fa-deskpro:before {
  content: "\f38f";
}

.fa-desktop:before {
  content: "\f108";
}

.fa-desktop-alt:before {
  content: "\f390";
}

.fa-dev:before {
  content: "\f6cc";
}

.fa-deviantart:before {
  content: "\f1bd";
}

.fa-dewpoint:before {
  content: "\f748";
}

.fa-dharmachakra:before {
  content: "\f655";
}

.fa-dhl:before {
  content: "\f790";
}

.fa-diagnoses:before {
  content: "\f470";
}

.fa-diamond:before {
  content: "\f219";
}

.fa-diaspora:before {
  content: "\f791";
}

.fa-dice:before {
  content: "\f522";
}

.fa-dice-d10:before {
  content: "\f6cd";
}

.fa-dice-d12:before {
  content: "\f6ce";
}

.fa-dice-d20:before {
  content: "\f6cf";
}

.fa-dice-d4:before {
  content: "\f6d0";
}

.fa-dice-d6:before {
  content: "\f6d1";
}

.fa-dice-d8:before {
  content: "\f6d2";
}

.fa-dice-five:before {
  content: "\f523";
}

.fa-dice-four:before {
  content: "\f524";
}

.fa-dice-one:before {
  content: "\f525";
}

.fa-dice-six:before {
  content: "\f526";
}

.fa-dice-three:before {
  content: "\f527";
}

.fa-dice-two:before {
  content: "\f528";
}

.fa-digg:before {
  content: "\f1a6";
}

.fa-digging:before {
  content: "\f85e";
}

.fa-digital-ocean:before {
  content: "\f391";
}

.fa-digital-tachograph:before {
  content: "\f566";
}

.fa-diploma:before {
  content: "\f5ea";
}

.fa-directions:before {
  content: "\f5eb";
}

.fa-disc-drive:before {
  content: "\f8b5";
}

.fa-discord:before {
  content: "\f392";
}

.fa-discourse:before {
  content: "\f393";
}

.fa-disease:before {
  content: "\f7fa";
}

.fa-divide:before {
  content: "\f529";
}

.fa-dizzy:before {
  content: "\f567";
}

.fa-dna:before {
  content: "\f471";
}

.fa-do-not-enter:before {
  content: "\f5ec";
}

.fa-dochub:before {
  content: "\f394";
}

.fa-docker:before {
  content: "\f395";
}

.fa-dog:before {
  content: "\f6d3";
}

.fa-dog-leashed:before {
  content: "\f6d4";
}

.fa-dollar-sign:before {
  content: "\f155";
}

.fa-dolly:before {
  content: "\f472";
}

.fa-dolly-empty:before {
  content: "\f473";
}

.fa-dolly-flatbed:before {
  content: "\f474";
}

.fa-dolly-flatbed-alt:before {
  content: "\f475";
}

.fa-dolly-flatbed-empty:before {
  content: "\f476";
}

.fa-donate:before {
  content: "\f4b9";
}

.fa-door-closed:before {
  content: "\f52a";
}

.fa-door-open:before {
  content: "\f52b";
}

.fa-dot-circle:before {
  content: "\f192";
}

.fa-dove:before {
  content: "\f4ba";
}

.fa-download:before {
  content: "\f019";
}

.fa-draft2digital:before {
  content: "\f396";
}

.fa-drafting-compass:before {
  content: "\f568";
}

.fa-dragon:before {
  content: "\f6d5";
}

.fa-draw-circle:before {
  content: "\f5ed";
}

.fa-draw-polygon:before {
  content: "\f5ee";
}

.fa-draw-square:before {
  content: "\f5ef";
}

.fa-dreidel:before {
  content: "\f792";
}

.fa-dribbble:before {
  content: "\f17d";
}

.fa-dribbble-square:before {
  content: "\f397";
}

.fa-drone:before {
  content: "\f85f";
}

.fa-drone-alt:before {
  content: "\f860";
}

.fa-dropbox:before {
  content: "\f16b";
}

.fa-drum:before {
  content: "\f569";
}

.fa-drum-steelpan:before {
  content: "\f56a";
}

.fa-drumstick:before {
  content: "\f6d6";
}

.fa-drumstick-bite:before {
  content: "\f6d7";
}

.fa-drupal:before {
  content: "\f1a9";
}

.fa-dryer:before {
  content: "\f861";
}

.fa-dryer-alt:before {
  content: "\f862";
}

.fa-duck:before {
  content: "\f6d8";
}

.fa-dumbbell:before {
  content: "\f44b";
}

.fa-dumpster:before {
  content: "\f793";
}

.fa-dumpster-fire:before {
  content: "\f794";
}

.fa-dungeon:before {
  content: "\f6d9";
}

.fa-dyalog:before {
  content: "\f399";
}

.fa-ear:before {
  content: "\f5f0";
}

.fa-ear-muffs:before {
  content: "\f795";
}

.fa-earlybirds:before {
  content: "\f39a";
}

.fa-ebay:before {
  content: "\f4f4";
}

.fa-eclipse:before {
  content: "\f749";
}

.fa-eclipse-alt:before {
  content: "\f74a";
}

.fa-edge:before {
  content: "\f282";
}

.fa-edge-legacy:before {
  content: "\e078";
}

.fa-edit:before {
  content: "\f044";
}

.fa-egg:before {
  content: "\f7fb";
}

.fa-egg-fried:before {
  content: "\f7fc";
}

.fa-eject:before {
  content: "\f052";
}

.fa-elementor:before {
  content: "\f430";
}

.fa-elephant:before {
  content: "\f6da";
}

.fa-ellipsis-h:before {
  content: "\f141";
}

.fa-ellipsis-h-alt:before {
  content: "\f39b";
}

.fa-ellipsis-v:before {
  content: "\f142";
}

.fa-ellipsis-v-alt:before {
  content: "\f39c";
}

.fa-ello:before {
  content: "\f5f1";
}

.fa-ember:before {
  content: "\f423";
}

.fa-empire:before {
  content: "\f1d1";
}

.fa-empty-set:before {
  content: "\f656";
}

.fa-engine-warning:before {
  content: "\f5f2";
}

.fa-envelope:before {
  content: "\f0e0";
}

.fa-envelope-open:before {
  content: "\f2b6";
}

.fa-envelope-open-dollar:before {
  content: "\f657";
}

.fa-envelope-open-text:before {
  content: "\f658";
}

.fa-envelope-square:before {
  content: "\f199";
}

.fa-envira:before {
  content: "\f299";
}

.fa-equals:before {
  content: "\f52c";
}

.fa-eraser:before {
  content: "\f12d";
}

.fa-erlang:before {
  content: "\f39d";
}

.fa-ethereum:before {
  content: "\f42e";
}

.fa-ethernet:before {
  content: "\f796";
}

.fa-etsy:before {
  content: "\f2d7";
}

.fa-euro-sign:before {
  content: "\f153";
}

.fa-evernote:before {
  content: "\f839";
}

.fa-exchange:before {
  content: "\f0ec";
}

.fa-exchange-alt:before {
  content: "\f362";
}

.fa-exclamation:before {
  content: "\f12a";
}

.fa-exclamation-circle:before {
  content: "\f06a";
}

.fa-exclamation-square:before {
  content: "\f321";
}

.fa-exclamation-triangle:before {
  content: "\f071";
}

.fa-expand:before {
  content: "\f065";
}

.fa-expand-alt:before {
  content: "\f424";
}

.fa-expand-arrows:before {
  content: "\f31d";
}

.fa-expand-arrows-alt:before {
  content: "\f31e";
}

.fa-expand-wide:before {
  content: "\f320";
}

.fa-expeditedssl:before {
  content: "\f23e";
}

.fa-external-link:before {
  content: "\f08e";
}

.fa-external-link-alt:before {
  content: "\f35d";
}

.fa-external-link-square:before {
  content: "\f14c";
}

.fa-external-link-square-alt:before {
  content: "\f360";
}

.fa-eye:before {
  content: "\f06e";
}

.fa-eye-dropper:before {
  content: "\f1fb";
}

.fa-eye-evil:before {
  content: "\f6db";
}

.fa-eye-slash:before {
  content: "\f070";
}

.fa-facebook:before {
  content: "\f09a";
}

.fa-facebook-f:before {
  content: "\f39e";
}

.fa-facebook-messenger:before {
  content: "\f39f";
}

.fa-facebook-square:before {
  content: "\f082";
}

.fa-fan:before {
  content: "\f863";
}

.fa-fan-table:before {
  content: "\e004";
}

.fa-fantasy-flight-games:before {
  content: "\f6dc";
}

.fa-farm:before {
  content: "\f864";
}

.fa-fast-backward:before {
  content: "\f049";
}

.fa-fast-forward:before {
  content: "\f050";
}

.fa-faucet:before {
  content: "\e005";
}

.fa-faucet-drip:before {
  content: "\e006";
}

.fa-fax:before {
  content: "\f1ac";
}

.fa-feather:before {
  content: "\f52d";
}

.fa-feather-alt:before {
  content: "\f56b";
}

.fa-fedex:before {
  content: "\f797";
}

.fa-fedora:before {
  content: "\f798";
}

.fa-female:before {
  content: "\f182";
}

.fa-field-hockey:before {
  content: "\f44c";
}

.fa-fighter-jet:before {
  content: "\f0fb";
}

.fa-figma:before {
  content: "\f799";
}

.fa-file:before {
  content: "\f15b";
}

.fa-file-alt:before {
  content: "\f15c";
}

.fa-file-archive:before {
  content: "\f1c6";
}

.fa-file-audio:before {
  content: "\f1c7";
}

.fa-file-certificate:before {
  content: "\f5f3";
}

.fa-file-chart-line:before {
  content: "\f659";
}

.fa-file-chart-pie:before {
  content: "\f65a";
}

.fa-file-check:before {
  content: "\f316";
}

.fa-file-code:before {
  content: "\f1c9";
}

.fa-file-contract:before {
  content: "\f56c";
}

.fa-file-csv:before {
  content: "\f6dd";
}

.fa-file-download:before {
  content: "\f56d";
}

.fa-file-edit:before {
  content: "\f31c";
}

.fa-file-excel:before {
  content: "\f1c3";
}

.fa-file-exclamation:before {
  content: "\f31a";
}

.fa-file-export:before {
  content: "\f56e";
}

.fa-file-image:before {
  content: "\f1c5";
}

.fa-file-import:before {
  content: "\f56f";
}

.fa-file-invoice:before {
  content: "\f570";
}

.fa-file-invoice-dollar:before {
  content: "\f571";
}

.fa-file-medical:before {
  content: "\f477";
}

.fa-file-medical-alt:before {
  content: "\f478";
}

.fa-file-minus:before {
  content: "\f318";
}

.fa-file-music:before {
  content: "\f8b6";
}

.fa-file-pdf:before {
  content: "\f1c1";
}

.fa-file-plus:before {
  content: "\f319";
}

.fa-file-powerpoint:before {
  content: "\f1c4";
}

.fa-file-prescription:before {
  content: "\f572";
}

.fa-file-search:before {
  content: "\f865";
}

.fa-file-signature:before {
  content: "\f573";
}

.fa-file-spreadsheet:before {
  content: "\f65b";
}

.fa-file-times:before {
  content: "\f317";
}

.fa-file-upload:before {
  content: "\f574";
}

.fa-file-user:before {
  content: "\f65c";
}

.fa-file-video:before {
  content: "\f1c8";
}

.fa-file-word:before {
  content: "\f1c2";
}

.fa-files-medical:before {
  content: "\f7fd";
}

.fa-fill:before {
  content: "\f575";
}

.fa-fill-drip:before {
  content: "\f576";
}

.fa-film:before {
  content: "\f008";
}

.fa-film-alt:before {
  content: "\f3a0";
}

.fa-film-canister:before {
  content: "\f8b7";
}

.fa-filter:before {
  content: "\f0b0";
}

.fa-fingerprint:before {
  content: "\f577";
}

.fa-fire:before {
  content: "\f06d";
}

.fa-fire-alt:before {
  content: "\f7e4";
}

.fa-fire-extinguisher:before {
  content: "\f134";
}

.fa-fire-smoke:before {
  content: "\f74b";
}

.fa-firefox:before {
  content: "\f269";
}

.fa-firefox-browser:before {
  content: "\e007";
}

.fa-fireplace:before {
  content: "\f79a";
}

.fa-first-aid:before {
  content: "\f479";
}

.fa-first-order:before {
  content: "\f2b0";
}

.fa-first-order-alt:before {
  content: "\f50a";
}

.fa-firstdraft:before {
  content: "\f3a1";
}

.fa-fish:before {
  content: "\f578";
}

.fa-fish-cooked:before {
  content: "\f7fe";
}

.fa-fist-raised:before {
  content: "\f6de";
}

.fa-flag:before {
  content: "\f024";
}

.fa-flag-alt:before {
  content: "\f74c";
}

.fa-flag-checkered:before {
  content: "\f11e";
}

.fa-flag-usa:before {
  content: "\f74d";
}

.fa-flame:before {
  content: "\f6df";
}

.fa-flashlight:before {
  content: "\f8b8";
}

.fa-flask:before {
  content: "\f0c3";
}

.fa-flask-poison:before {
  content: "\f6e0";
}

.fa-flask-potion:before {
  content: "\f6e1";
}

.fa-flickr:before {
  content: "\f16e";
}

.fa-flipboard:before {
  content: "\f44d";
}

.fa-flower:before {
  content: "\f7ff";
}

.fa-flower-daffodil:before {
  content: "\f800";
}

.fa-flower-tulip:before {
  content: "\f801";
}

.fa-flushed:before {
  content: "\f579";
}

.fa-flute:before {
  content: "\f8b9";
}

.fa-flux-capacitor:before {
  content: "\f8ba";
}

.fa-fly:before {
  content: "\f417";
}

.fa-fog:before {
  content: "\f74e";
}

.fa-folder:before {
  content: "\f07b";
}

.fa-folder-download:before {
  content: "\e053";
}

.fa-folder-minus:before {
  content: "\f65d";
}

.fa-folder-open:before {
  content: "\f07c";
}

.fa-folder-plus:before {
  content: "\f65e";
}

.fa-folder-times:before {
  content: "\f65f";
}

.fa-folder-tree:before {
  content: "\f802";
}

.fa-folder-upload:before {
  content: "\e054";
}

.fa-folders:before {
  content: "\f660";
}

.fa-font:before {
  content: "\f031";
}

.fa-font-awesome:before {
  content: "\f2b4";
}

.fa-font-awesome-alt:before {
  content: "\f35c";
}

.fa-font-awesome-flag:before {
  content: "\f425";
}

.fa-font-awesome-logo-full:before {
  content: "\f4e6";
}

.fa-font-case:before {
  content: "\f866";
}

.fa-fonticons:before {
  content: "\f280";
}

.fa-fonticons-fi:before {
  content: "\f3a2";
}

.fa-football-ball:before {
  content: "\f44e";
}

.fa-football-helmet:before {
  content: "\f44f";
}

.fa-forklift:before {
  content: "\f47a";
}

.fa-fort-awesome:before {
  content: "\f286";
}

.fa-fort-awesome-alt:before {
  content: "\f3a3";
}

.fa-forumbee:before {
  content: "\f211";
}

.fa-forward:before {
  content: "\f04e";
}

.fa-foursquare:before {
  content: "\f180";
}

.fa-fragile:before {
  content: "\f4bb";
}

.fa-free-code-camp:before {
  content: "\f2c5";
}

.fa-freebsd:before {
  content: "\f3a4";
}

.fa-french-fries:before {
  content: "\f803";
}

.fa-frog:before {
  content: "\f52e";
}

.fa-frosty-head:before {
  content: "\f79b";
}

.fa-frown:before {
  content: "\f119";
}

.fa-frown-open:before {
  content: "\f57a";
}

.fa-fulcrum:before {
  content: "\f50b";
}

.fa-function:before {
  content: "\f661";
}

.fa-funnel-dollar:before {
  content: "\f662";
}

.fa-futbol:before {
  content: "\f1e3";
}

.fa-galactic-republic:before {
  content: "\f50c";
}

.fa-galactic-senate:before {
  content: "\f50d";
}

.fa-galaxy:before {
  content: "\e008";
}

.fa-game-board:before {
  content: "\f867";
}

.fa-game-board-alt:before {
  content: "\f868";
}

.fa-game-console-handheld:before {
  content: "\f8bb";
}

.fa-gamepad:before {
  content: "\f11b";
}

.fa-gamepad-alt:before {
  content: "\f8bc";
}

.fa-garage:before {
  content: "\e009";
}

.fa-garage-car:before {
  content: "\e00a";
}

.fa-garage-open:before {
  content: "\e00b";
}

.fa-gas-pump:before {
  content: "\f52f";
}

.fa-gas-pump-slash:before {
  content: "\f5f4";
}

.fa-gavel:before {
  content: "\f0e3";
}

.fa-gem:before {
  content: "\f3a5";
}

.fa-genderless:before {
  content: "\f22d";
}

.fa-get-pocket:before {
  content: "\f265";
}

.fa-gg:before {
  content: "\f260";
}

.fa-gg-circle:before {
  content: "\f261";
}

.fa-ghost:before {
  content: "\f6e2";
}

.fa-gift:before {
  content: "\f06b";
}

.fa-gift-card:before {
  content: "\f663";
}

.fa-gifts:before {
  content: "\f79c";
}

.fa-gingerbread-man:before {
  content: "\f79d";
}

.fa-git:before {
  content: "\f1d3";
}

.fa-git-alt:before {
  content: "\f841";
}

.fa-git-square:before {
  content: "\f1d2";
}

.fa-github:before {
  content: "\f09b";
}

.fa-github-alt:before {
  content: "\f113";
}

.fa-github-square:before {
  content: "\f092";
}

.fa-gitkraken:before {
  content: "\f3a6";
}

.fa-gitlab:before {
  content: "\f296";
}

.fa-gitter:before {
  content: "\f426";
}

.fa-glass:before {
  content: "\f804";
}

.fa-glass-champagne:before {
  content: "\f79e";
}

.fa-glass-cheers:before {
  content: "\f79f";
}

.fa-glass-citrus:before {
  content: "\f869";
}

.fa-glass-martini:before {
  content: "\f000";
}

.fa-glass-martini-alt:before {
  content: "\f57b";
}

.fa-glass-whiskey:before {
  content: "\f7a0";
}

.fa-glass-whiskey-rocks:before {
  content: "\f7a1";
}

.fa-glasses:before {
  content: "\f530";
}

.fa-glasses-alt:before {
  content: "\f5f5";
}

.fa-glide:before {
  content: "\f2a5";
}

.fa-glide-g:before {
  content: "\f2a6";
}

.fa-globe:before {
  content: "\f0ac";
}

.fa-globe-africa:before {
  content: "\f57c";
}

.fa-globe-americas:before {
  content: "\f57d";
}

.fa-globe-asia:before {
  content: "\f57e";
}

.fa-globe-europe:before {
  content: "\f7a2";
}

.fa-globe-snow:before {
  content: "\f7a3";
}

.fa-globe-stand:before {
  content: "\f5f6";
}

.fa-gofore:before {
  content: "\f3a7";
}

.fa-golf-ball:before {
  content: "\f450";
}

.fa-golf-club:before {
  content: "\f451";
}

.fa-goodreads:before {
  content: "\f3a8";
}

.fa-goodreads-g:before {
  content: "\f3a9";
}

.fa-google:before {
  content: "\f1a0";
}

.fa-google-drive:before {
  content: "\f3aa";
}

.fa-google-pay:before {
  content: "\e079";
}

.fa-google-play:before {
  content: "\f3ab";
}

.fa-google-plus:before {
  content: "\f2b3";
}

.fa-google-plus-g:before {
  content: "\f0d5";
}

.fa-google-plus-square:before {
  content: "\f0d4";
}

.fa-google-wallet:before {
  content: "\f1ee";
}

.fa-gopuram:before {
  content: "\f664";
}

.fa-graduation-cap:before {
  content: "\f19d";
}

.fa-gramophone:before {
  content: "\f8bd";
}

.fa-gratipay:before {
  content: "\f184";
}

.fa-grav:before {
  content: "\f2d6";
}

.fa-greater-than:before {
  content: "\f531";
}

.fa-greater-than-equal:before {
  content: "\f532";
}

.fa-grimace:before {
  content: "\f57f";
}

.fa-grin:before {
  content: "\f580";
}

.fa-grin-alt:before {
  content: "\f581";
}

.fa-grin-beam:before {
  content: "\f582";
}

.fa-grin-beam-sweat:before {
  content: "\f583";
}

.fa-grin-hearts:before {
  content: "\f584";
}

.fa-grin-squint:before {
  content: "\f585";
}

.fa-grin-squint-tears:before {
  content: "\f586";
}

.fa-grin-stars:before {
  content: "\f587";
}

.fa-grin-tears:before {
  content: "\f588";
}

.fa-grin-tongue:before {
  content: "\f589";
}

.fa-grin-tongue-squint:before {
  content: "\f58a";
}

.fa-grin-tongue-wink:before {
  content: "\f58b";
}

.fa-grin-wink:before {
  content: "\f58c";
}

.fa-grip-horizontal:before {
  content: "\f58d";
}

.fa-grip-lines:before {
  content: "\f7a4";
}

.fa-grip-lines-vertical:before {
  content: "\f7a5";
}

.fa-grip-vertical:before {
  content: "\f58e";
}

.fa-gripfire:before {
  content: "\f3ac";
}

.fa-grunt:before {
  content: "\f3ad";
}

.fa-guilded:before {
  content: "\e07e";
}

.fa-guitar:before {
  content: "\f7a6";
}

.fa-guitar-electric:before {
  content: "\f8be";
}

.fa-guitars:before {
  content: "\f8bf";
}

.fa-gulp:before {
  content: "\f3ae";
}

.fa-h-square:before {
  content: "\f0fd";
}

.fa-h1:before {
  content: "\f313";
}

.fa-h2:before {
  content: "\f314";
}

.fa-h3:before {
  content: "\f315";
}

.fa-h4:before {
  content: "\f86a";
}

.fa-hacker-news:before {
  content: "\f1d4";
}

.fa-hacker-news-square:before {
  content: "\f3af";
}

.fa-hackerrank:before {
  content: "\f5f7";
}

.fa-hamburger:before {
  content: "\f805";
}

.fa-hammer:before {
  content: "\f6e3";
}

.fa-hammer-war:before {
  content: "\f6e4";
}

.fa-hamsa:before {
  content: "\f665";
}

.fa-hand-heart:before {
  content: "\f4bc";
}

.fa-hand-holding:before {
  content: "\f4bd";
}

.fa-hand-holding-box:before {
  content: "\f47b";
}

.fa-hand-holding-heart:before {
  content: "\f4be";
}

.fa-hand-holding-magic:before {
  content: "\f6e5";
}

.fa-hand-holding-medical:before {
  content: "\e05c";
}

.fa-hand-holding-seedling:before {
  content: "\f4bf";
}

.fa-hand-holding-usd:before {
  content: "\f4c0";
}

.fa-hand-holding-water:before {
  content: "\f4c1";
}

.fa-hand-lizard:before {
  content: "\f258";
}

.fa-hand-middle-finger:before {
  content: "\f806";
}

.fa-hand-paper:before {
  content: "\f256";
}

.fa-hand-peace:before {
  content: "\f25b";
}

.fa-hand-point-down:before {
  content: "\f0a7";
}

.fa-hand-point-left:before {
  content: "\f0a5";
}

.fa-hand-point-right:before {
  content: "\f0a4";
}

.fa-hand-point-up:before {
  content: "\f0a6";
}

.fa-hand-pointer:before {
  content: "\f25a";
}

.fa-hand-receiving:before {
  content: "\f47c";
}

.fa-hand-rock:before {
  content: "\f255";
}

.fa-hand-scissors:before {
  content: "\f257";
}

.fa-hand-sparkles:before {
  content: "\e05d";
}

.fa-hand-spock:before {
  content: "\f259";
}

.fa-hands:before {
  content: "\f4c2";
}

.fa-hands-heart:before {
  content: "\f4c3";
}

.fa-hands-helping:before {
  content: "\f4c4";
}

.fa-hands-usd:before {
  content: "\f4c5";
}

.fa-hands-wash:before {
  content: "\e05e";
}

.fa-handshake:before {
  content: "\f2b5";
}

.fa-handshake-alt:before {
  content: "\f4c6";
}

.fa-handshake-alt-slash:before {
  content: "\e05f";
}

.fa-handshake-slash:before {
  content: "\e060";
}

.fa-hanukiah:before {
  content: "\f6e6";
}

.fa-hard-hat:before {
  content: "\f807";
}

.fa-hashtag:before {
  content: "\f292";
}

.fa-hat-chef:before {
  content: "\f86b";
}

.fa-hat-cowboy:before {
  content: "\f8c0";
}

.fa-hat-cowboy-side:before {
  content: "\f8c1";
}

.fa-hat-santa:before {
  content: "\f7a7";
}

.fa-hat-winter:before {
  content: "\f7a8";
}

.fa-hat-witch:before {
  content: "\f6e7";
}

.fa-hat-wizard:before {
  content: "\f6e8";
}

.fa-hdd:before {
  content: "\f0a0";
}

.fa-head-side:before {
  content: "\f6e9";
}

.fa-head-side-brain:before {
  content: "\f808";
}

.fa-head-side-cough:before {
  content: "\e061";
}

.fa-head-side-cough-slash:before {
  content: "\e062";
}

.fa-head-side-headphones:before {
  content: "\f8c2";
}

.fa-head-side-mask:before {
  content: "\e063";
}

.fa-head-side-medical:before {
  content: "\f809";
}

.fa-head-side-virus:before {
  content: "\e064";
}

.fa-head-vr:before {
  content: "\f6ea";
}

.fa-heading:before {
  content: "\f1dc";
}

.fa-headphones:before {
  content: "\f025";
}

.fa-headphones-alt:before {
  content: "\f58f";
}

.fa-headset:before {
  content: "\f590";
}

.fa-heart:before {
  content: "\f004";
}

.fa-heart-broken:before {
  content: "\f7a9";
}

.fa-heart-circle:before {
  content: "\f4c7";
}

.fa-heart-rate:before {
  content: "\f5f8";
}

.fa-heart-square:before {
  content: "\f4c8";
}

.fa-heartbeat:before {
  content: "\f21e";
}

.fa-heat:before {
  content: "\e00c";
}

.fa-helicopter:before {
  content: "\f533";
}

.fa-helmet-battle:before {
  content: "\f6eb";
}

.fa-hexagon:before {
  content: "\f312";
}

.fa-highlighter:before {
  content: "\f591";
}

.fa-hiking:before {
  content: "\f6ec";
}

.fa-hippo:before {
  content: "\f6ed";
}

.fa-hips:before {
  content: "\f452";
}

.fa-hire-a-helper:before {
  content: "\f3b0";
}

.fa-history:before {
  content: "\f1da";
}

.fa-hive:before {
  content: "\e07f";
}

.fa-hockey-mask:before {
  content: "\f6ee";
}

.fa-hockey-puck:before {
  content: "\f453";
}

.fa-hockey-sticks:before {
  content: "\f454";
}

.fa-holly-berry:before {
  content: "\f7aa";
}

.fa-home:before {
  content: "\f015";
}

.fa-home-alt:before {
  content: "\f80a";
}

.fa-home-heart:before {
  content: "\f4c9";
}

.fa-home-lg:before {
  content: "\f80b";
}

.fa-home-lg-alt:before {
  content: "\f80c";
}

.fa-hood-cloak:before {
  content: "\f6ef";
}

.fa-hooli:before {
  content: "\f427";
}

.fa-horizontal-rule:before {
  content: "\f86c";
}

.fa-hornbill:before {
  content: "\f592";
}

.fa-horse:before {
  content: "\f6f0";
}

.fa-horse-head:before {
  content: "\f7ab";
}

.fa-horse-saddle:before {
  content: "\f8c3";
}

.fa-hospital:before {
  content: "\f0f8";
}

.fa-hospital-alt:before {
  content: "\f47d";
}

.fa-hospital-symbol:before {
  content: "\f47e";
}

.fa-hospital-user:before {
  content: "\f80d";
}

.fa-hospitals:before {
  content: "\f80e";
}

.fa-hot-tub:before {
  content: "\f593";
}

.fa-hotdog:before {
  content: "\f80f";
}

.fa-hotel:before {
  content: "\f594";
}

.fa-hotjar:before {
  content: "\f3b1";
}

.fa-hourglass:before {
  content: "\f254";
}

.fa-hourglass-end:before {
  content: "\f253";
}

.fa-hourglass-half:before {
  content: "\f252";
}

.fa-hourglass-start:before {
  content: "\f251";
}

.fa-house:before {
  content: "\e00d";
}

.fa-house-damage:before {
  content: "\f6f1";
}

.fa-house-day:before {
  content: "\e00e";
}

.fa-house-flood:before {
  content: "\f74f";
}

.fa-house-leave:before {
  content: "\e00f";
}

.fa-house-night:before {
  content: "\e010";
}

.fa-house-return:before {
  content: "\e011";
}

.fa-house-signal:before {
  content: "\e012";
}

.fa-house-user:before {
  content: "\e065";
}

.fa-houzz:before {
  content: "\f27c";
}

.fa-hryvnia:before {
  content: "\f6f2";
}

.fa-html5:before {
  content: "\f13b";
}

.fa-hubspot:before {
  content: "\f3b2";
}

.fa-humidity:before {
  content: "\f750";
}

.fa-hurricane:before {
  content: "\f751";
}

.fa-i-cursor:before {
  content: "\f246";
}

.fa-ice-cream:before {
  content: "\f810";
}

.fa-ice-skate:before {
  content: "\f7ac";
}

.fa-icicles:before {
  content: "\f7ad";
}

.fa-icons:before {
  content: "\f86d";
}

.fa-icons-alt:before {
  content: "\f86e";
}

.fa-id-badge:before {
  content: "\f2c1";
}

.fa-id-card:before {
  content: "\f2c2";
}

.fa-id-card-alt:before {
  content: "\f47f";
}

.fa-ideal:before {
  content: "\e013";
}

.fa-igloo:before {
  content: "\f7ae";
}

.fa-image:before {
  content: "\f03e";
}

.fa-image-polaroid:before {
  content: "\f8c4";
}

.fa-images:before {
  content: "\f302";
}

.fa-imdb:before {
  content: "\f2d8";
}

.fa-inbox:before {
  content: "\f01c";
}

.fa-inbox-in:before {
  content: "\f310";
}

.fa-inbox-out:before {
  content: "\f311";
}

.fa-indent:before {
  content: "\f03c";
}

.fa-industry:before {
  content: "\f275";
}

.fa-industry-alt:before {
  content: "\f3b3";
}

.fa-infinity:before {
  content: "\f534";
}

.fa-info:before {
  content: "\f129";
}

.fa-info-circle:before {
  content: "\f05a";
}

.fa-info-square:before {
  content: "\f30f";
}

.fa-inhaler:before {
  content: "\f5f9";
}

.fa-innosoft:before {
  content: "\e080";
}

.fa-instagram:before {
  content: "\f16d";
}

.fa-instagram-square:before {
  content: "\e055";
}

.fa-instalod:before {
  content: "\e081";
}

.fa-integral:before {
  content: "\f667";
}

.fa-intercom:before {
  content: "\f7af";
}

.fa-internet-explorer:before {
  content: "\f26b";
}

.fa-intersection:before {
  content: "\f668";
}

.fa-inventory:before {
  content: "\f480";
}

.fa-invision:before {
  content: "\f7b0";
}

.fa-ioxhost:before {
  content: "\f208";
}

.fa-island-tropical:before {
  content: "\f811";
}

.fa-italic:before {
  content: "\f033";
}

.fa-itch-io:before {
  content: "\f83a";
}

.fa-itunes:before {
  content: "\f3b4";
}

.fa-itunes-note:before {
  content: "\f3b5";
}

.fa-jack-o-lantern:before {
  content: "\f30e";
}

.fa-java:before {
  content: "\f4e4";
}

.fa-jedi:before {
  content: "\f669";
}

.fa-jedi-order:before {
  content: "\f50e";
}

.fa-jenkins:before {
  content: "\f3b6";
}

.fa-jira:before {
  content: "\f7b1";
}

.fa-joget:before {
  content: "\f3b7";
}

.fa-joint:before {
  content: "\f595";
}

.fa-joomla:before {
  content: "\f1aa";
}

.fa-journal-whills:before {
  content: "\f66a";
}

.fa-joystick:before {
  content: "\f8c5";
}

.fa-js:before {
  content: "\f3b8";
}

.fa-js-square:before {
  content: "\f3b9";
}

.fa-jsfiddle:before {
  content: "\f1cc";
}

.fa-jug:before {
  content: "\f8c6";
}

.fa-kaaba:before {
  content: "\f66b";
}

.fa-kaggle:before {
  content: "\f5fa";
}

.fa-kazoo:before {
  content: "\f8c7";
}

.fa-kerning:before {
  content: "\f86f";
}

.fa-key:before {
  content: "\f084";
}

.fa-key-skeleton:before {
  content: "\f6f3";
}

.fa-keybase:before {
  content: "\f4f5";
}

.fa-keyboard:before {
  content: "\f11c";
}

.fa-keycdn:before {
  content: "\f3ba";
}

.fa-keynote:before {
  content: "\f66c";
}

.fa-khanda:before {
  content: "\f66d";
}

.fa-kickstarter:before {
  content: "\f3bb";
}

.fa-kickstarter-k:before {
  content: "\f3bc";
}

.fa-kidneys:before {
  content: "\f5fb";
}

.fa-kiss:before {
  content: "\f596";
}

.fa-kiss-beam:before {
  content: "\f597";
}

.fa-kiss-wink-heart:before {
  content: "\f598";
}

.fa-kite:before {
  content: "\f6f4";
}

.fa-kiwi-bird:before {
  content: "\f535";
}

.fa-knife-kitchen:before {
  content: "\f6f5";
}

.fa-korvue:before {
  content: "\f42f";
}

.fa-lambda:before {
  content: "\f66e";
}

.fa-lamp:before {
  content: "\f4ca";
}

.fa-lamp-desk:before {
  content: "\e014";
}

.fa-lamp-floor:before {
  content: "\e015";
}

.fa-landmark:before {
  content: "\f66f";
}

.fa-landmark-alt:before {
  content: "\f752";
}

.fa-language:before {
  content: "\f1ab";
}

.fa-laptop:before {
  content: "\f109";
}

.fa-laptop-code:before {
  content: "\f5fc";
}

.fa-laptop-house:before {
  content: "\e066";
}

.fa-laptop-medical:before {
  content: "\f812";
}

.fa-laravel:before {
  content: "\f3bd";
}

.fa-lasso:before {
  content: "\f8c8";
}

.fa-lastfm:before {
  content: "\f202";
}

.fa-lastfm-square:before {
  content: "\f203";
}

.fa-laugh:before {
  content: "\f599";
}

.fa-laugh-beam:before {
  content: "\f59a";
}

.fa-laugh-squint:before {
  content: "\f59b";
}

.fa-laugh-wink:before {
  content: "\f59c";
}

.fa-layer-group:before {
  content: "\f5fd";
}

.fa-layer-minus:before {
  content: "\f5fe";
}

.fa-layer-plus:before {
  content: "\f5ff";
}

.fa-leaf:before {
  content: "\f06c";
}

.fa-leaf-heart:before {
  content: "\f4cb";
}

.fa-leaf-maple:before {
  content: "\f6f6";
}

.fa-leaf-oak:before {
  content: "\f6f7";
}

.fa-leanpub:before {
  content: "\f212";
}

.fa-lemon:before {
  content: "\f094";
}

.fa-less:before {
  content: "\f41d";
}

.fa-less-than:before {
  content: "\f536";
}

.fa-less-than-equal:before {
  content: "\f537";
}

.fa-level-down:before {
  content: "\f149";
}

.fa-level-down-alt:before {
  content: "\f3be";
}

.fa-level-up:before {
  content: "\f148";
}

.fa-level-up-alt:before {
  content: "\f3bf";
}

.fa-life-ring:before {
  content: "\f1cd";
}

.fa-light-ceiling:before {
  content: "\e016";
}

.fa-light-switch:before {
  content: "\e017";
}

.fa-light-switch-off:before {
  content: "\e018";
}

.fa-light-switch-on:before {
  content: "\e019";
}

.fa-lightbulb:before {
  content: "\f0eb";
}

.fa-lightbulb-dollar:before {
  content: "\f670";
}

.fa-lightbulb-exclamation:before {
  content: "\f671";
}

.fa-lightbulb-on:before {
  content: "\f672";
}

.fa-lightbulb-slash:before {
  content: "\f673";
}

.fa-lights-holiday:before {
  content: "\f7b2";
}

.fa-line:before {
  content: "\f3c0";
}

.fa-line-columns:before {
  content: "\f870";
}

.fa-line-height:before {
  content: "\f871";
}

.fa-link:before {
  content: "\f0c1";
}

.fa-linkedin:before {
  content: "\f08c";
}

.fa-linkedin-in:before {
  content: "\f0e1";
}

.fa-linode:before {
  content: "\f2b8";
}

.fa-linux:before {
  content: "\f17c";
}

.fa-lips:before {
  content: "\f600";
}

.fa-lira-sign:before {
  content: "\f195";
}

.fa-list:before {
  content: "\f03a";
}

.fa-list-alt:before {
  content: "\f022";
}

.fa-list-music:before {
  content: "\f8c9";
}

.fa-list-ol:before {
  content: "\f0cb";
}

.fa-list-ul:before {
  content: "\f0ca";
}

.fa-location:before {
  content: "\f601";
}

.fa-location-arrow:before {
  content: "\f124";
}

.fa-location-circle:before {
  content: "\f602";
}

.fa-location-slash:before {
  content: "\f603";
}

.fa-lock:before {
  content: "\f023";
}

.fa-lock-alt:before {
  content: "\f30d";
}

.fa-lock-open:before {
  content: "\f3c1";
}

.fa-lock-open-alt:before {
  content: "\f3c2";
}

.fa-long-arrow-alt-down:before {
  content: "\f309";
}

.fa-long-arrow-alt-left:before {
  content: "\f30a";
}

.fa-long-arrow-alt-right:before {
  content: "\f30b";
}

.fa-long-arrow-alt-up:before {
  content: "\f30c";
}

.fa-long-arrow-down:before {
  content: "\f175";
}

.fa-long-arrow-left:before {
  content: "\f177";
}

.fa-long-arrow-right:before {
  content: "\f178";
}

.fa-long-arrow-up:before {
  content: "\f176";
}

.fa-loveseat:before {
  content: "\f4cc";
}

.fa-low-vision:before {
  content: "\f2a8";
}

.fa-luchador:before {
  content: "\f455";
}

.fa-luggage-cart:before {
  content: "\f59d";
}

.fa-lungs:before {
  content: "\f604";
}

.fa-lungs-virus:before {
  content: "\e067";
}

.fa-lyft:before {
  content: "\f3c3";
}

.fa-mace:before {
  content: "\f6f8";
}

.fa-magento:before {
  content: "\f3c4";
}

.fa-magic:before {
  content: "\f0d0";
}

.fa-magnet:before {
  content: "\f076";
}

.fa-mail-bulk:before {
  content: "\f674";
}

.fa-mailbox:before {
  content: "\f813";
}

.fa-mailchimp:before {
  content: "\f59e";
}

.fa-male:before {
  content: "\f183";
}

.fa-mandalorian:before {
  content: "\f50f";
}

.fa-mandolin:before {
  content: "\f6f9";
}

.fa-map:before {
  content: "\f279";
}

.fa-map-marked:before {
  content: "\f59f";
}

.fa-map-marked-alt:before {
  content: "\f5a0";
}

.fa-map-marker:before {
  content: "\f041";
}

.fa-map-marker-alt:before {
  content: "\f3c5";
}

.fa-map-marker-alt-slash:before {
  content: "\f605";
}

.fa-map-marker-check:before {
  content: "\f606";
}

.fa-map-marker-edit:before {
  content: "\f607";
}

.fa-map-marker-exclamation:before {
  content: "\f608";
}

.fa-map-marker-minus:before {
  content: "\f609";
}

.fa-map-marker-plus:before {
  content: "\f60a";
}

.fa-map-marker-question:before {
  content: "\f60b";
}

.fa-map-marker-slash:before {
  content: "\f60c";
}

.fa-map-marker-smile:before {
  content: "\f60d";
}

.fa-map-marker-times:before {
  content: "\f60e";
}

.fa-map-pin:before {
  content: "\f276";
}

.fa-map-signs:before {
  content: "\f277";
}

.fa-markdown:before {
  content: "\f60f";
}

.fa-marker:before {
  content: "\f5a1";
}

.fa-mars:before {
  content: "\f222";
}

.fa-mars-double:before {
  content: "\f227";
}

.fa-mars-stroke:before {
  content: "\f229";
}

.fa-mars-stroke-h:before {
  content: "\f22b";
}

.fa-mars-stroke-v:before {
  content: "\f22a";
}

.fa-mask:before {
  content: "\f6fa";
}

.fa-mastodon:before {
  content: "\f4f6";
}

.fa-maxcdn:before {
  content: "\f136";
}

.fa-mdb:before {
  content: "\f8ca";
}

.fa-meat:before {
  content: "\f814";
}

.fa-medal:before {
  content: "\f5a2";
}

.fa-medapps:before {
  content: "\f3c6";
}

.fa-medium:before {
  content: "\f23a";
}

.fa-medium-m:before {
  content: "\f3c7";
}

.fa-medkit:before {
  content: "\f0fa";
}

.fa-medrt:before {
  content: "\f3c8";
}

.fa-meetup:before {
  content: "\f2e0";
}

.fa-megaphone:before {
  content: "\f675";
}

.fa-megaport:before {
  content: "\f5a3";
}

.fa-meh:before {
  content: "\f11a";
}

.fa-meh-blank:before {
  content: "\f5a4";
}

.fa-meh-rolling-eyes:before {
  content: "\f5a5";
}

.fa-memory:before {
  content: "\f538";
}

.fa-mendeley:before {
  content: "\f7b3";
}

.fa-menorah:before {
  content: "\f676";
}

.fa-mercury:before {
  content: "\f223";
}

.fa-meteor:before {
  content: "\f753";
}

.fa-microblog:before {
  content: "\e01a";
}

.fa-microchip:before {
  content: "\f2db";
}

.fa-microphone:before {
  content: "\f130";
}

.fa-microphone-alt:before {
  content: "\f3c9";
}

.fa-microphone-alt-slash:before {
  content: "\f539";
}

.fa-microphone-slash:before {
  content: "\f131";
}

.fa-microphone-stand:before {
  content: "\f8cb";
}

.fa-microscope:before {
  content: "\f610";
}

.fa-microsoft:before {
  content: "\f3ca";
}

.fa-microwave:before {
  content: "\e01b";
}

.fa-mind-share:before {
  content: "\f677";
}

.fa-minus:before {
  content: "\f068";
}

.fa-minus-circle:before {
  content: "\f056";
}

.fa-minus-hexagon:before {
  content: "\f307";
}

.fa-minus-octagon:before {
  content: "\f308";
}

.fa-minus-square:before {
  content: "\f146";
}

.fa-mistletoe:before {
  content: "\f7b4";
}

.fa-mitten:before {
  content: "\f7b5";
}

.fa-mix:before {
  content: "\f3cb";
}

.fa-mixcloud:before {
  content: "\f289";
}

.fa-mixer:before {
  content: "\e056";
}

.fa-mizuni:before {
  content: "\f3cc";
}

.fa-mobile:before {
  content: "\f10b";
}

.fa-mobile-alt:before {
  content: "\f3cd";
}

.fa-mobile-android:before {
  content: "\f3ce";
}

.fa-mobile-android-alt:before {
  content: "\f3cf";
}

.fa-modx:before {
  content: "\f285";
}

.fa-monero:before {
  content: "\f3d0";
}

.fa-money-bill:before {
  content: "\f0d6";
}

.fa-money-bill-alt:before {
  content: "\f3d1";
}

.fa-money-bill-wave:before {
  content: "\f53a";
}

.fa-money-bill-wave-alt:before {
  content: "\f53b";
}

.fa-money-check:before {
  content: "\f53c";
}

.fa-money-check-alt:before {
  content: "\f53d";
}

.fa-money-check-edit:before {
  content: "\f872";
}

.fa-money-check-edit-alt:before {
  content: "\f873";
}

.fa-monitor-heart-rate:before {
  content: "\f611";
}

.fa-monkey:before {
  content: "\f6fb";
}

.fa-monument:before {
  content: "\f5a6";
}

.fa-moon:before {
  content: "\f186";
}

.fa-moon-cloud:before {
  content: "\f754";
}

.fa-moon-stars:before {
  content: "\f755";
}

.fa-mortar-pestle:before {
  content: "\f5a7";
}

.fa-mosque:before {
  content: "\f678";
}

.fa-motorcycle:before {
  content: "\f21c";
}

.fa-mountain:before {
  content: "\f6fc";
}

.fa-mountains:before {
  content: "\f6fd";
}

.fa-mouse:before {
  content: "\f8cc";
}

.fa-mouse-alt:before {
  content: "\f8cd";
}

.fa-mouse-pointer:before {
  content: "\f245";
}

.fa-mp3-player:before {
  content: "\f8ce";
}

.fa-mug:before {
  content: "\f874";
}

.fa-mug-hot:before {
  content: "\f7b6";
}

.fa-mug-marshmallows:before {
  content: "\f7b7";
}

.fa-mug-tea:before {
  content: "\f875";
}

.fa-music:before {
  content: "\f001";
}

.fa-music-alt:before {
  content: "\f8cf";
}

.fa-music-alt-slash:before {
  content: "\f8d0";
}

.fa-music-slash:before {
  content: "\f8d1";
}

.fa-napster:before {
  content: "\f3d2";
}

.fa-narwhal:before {
  content: "\f6fe";
}

.fa-neos:before {
  content: "\f612";
}

.fa-network-wired:before {
  content: "\f6ff";
}

.fa-neuter:before {
  content: "\f22c";
}

.fa-newspaper:before {
  content: "\f1ea";
}

.fa-nimblr:before {
  content: "\f5a8";
}

.fa-node:before {
  content: "\f419";
}

.fa-node-js:before {
  content: "\f3d3";
}

.fa-not-equal:before {
  content: "\f53e";
}

.fa-notes-medical:before {
  content: "\f481";
}

.fa-npm:before {
  content: "\f3d4";
}

.fa-ns8:before {
  content: "\f3d5";
}

.fa-nutritionix:before {
  content: "\f3d6";
}

.fa-object-group:before {
  content: "\f247";
}

.fa-object-ungroup:before {
  content: "\f248";
}

.fa-octagon:before {
  content: "\f306";
}

.fa-octopus-deploy:before {
  content: "\e082";
}

.fa-odnoklassniki:before {
  content: "\f263";
}

.fa-odnoklassniki-square:before {
  content: "\f264";
}

.fa-oil-can:before {
  content: "\f613";
}

.fa-oil-temp:before {
  content: "\f614";
}

.fa-old-republic:before {
  content: "\f510";
}

.fa-om:before {
  content: "\f679";
}

.fa-omega:before {
  content: "\f67a";
}

.fa-opencart:before {
  content: "\f23d";
}

.fa-openid:before {
  content: "\f19b";
}

.fa-opera:before {
  content: "\f26a";
}

.fa-optin-monster:before {
  content: "\f23c";
}

.fa-orcid:before {
  content: "\f8d2";
}

.fa-ornament:before {
  content: "\f7b8";
}

.fa-osi:before {
  content: "\f41a";
}

.fa-otter:before {
  content: "\f700";
}

.fa-outdent:before {
  content: "\f03b";
}

.fa-outlet:before {
  content: "\e01c";
}

.fa-oven:before {
  content: "\e01d";
}

.fa-overline:before {
  content: "\f876";
}

.fa-page-break:before {
  content: "\f877";
}

.fa-page4:before {
  content: "\f3d7";
}

.fa-pagelines:before {
  content: "\f18c";
}

.fa-pager:before {
  content: "\f815";
}

.fa-paint-brush:before {
  content: "\f1fc";
}

.fa-paint-brush-alt:before {
  content: "\f5a9";
}

.fa-paint-roller:before {
  content: "\f5aa";
}

.fa-palette:before {
  content: "\f53f";
}

.fa-palfed:before {
  content: "\f3d8";
}

.fa-pallet:before {
  content: "\f482";
}

.fa-pallet-alt:before {
  content: "\f483";
}

.fa-paper-plane:before {
  content: "\f1d8";
}

.fa-paperclip:before {
  content: "\f0c6";
}

.fa-parachute-box:before {
  content: "\f4cd";
}

.fa-paragraph:before {
  content: "\f1dd";
}

.fa-paragraph-rtl:before {
  content: "\f878";
}

.fa-parking:before {
  content: "\f540";
}

.fa-parking-circle:before {
  content: "\f615";
}

.fa-parking-circle-slash:before {
  content: "\f616";
}

.fa-parking-slash:before {
  content: "\f617";
}

.fa-passport:before {
  content: "\f5ab";
}

.fa-pastafarianism:before {
  content: "\f67b";
}

.fa-paste:before {
  content: "\f0ea";
}

.fa-patreon:before {
  content: "\f3d9";
}

.fa-pause:before {
  content: "\f04c";
}

.fa-pause-circle:before {
  content: "\f28b";
}

.fa-paw:before {
  content: "\f1b0";
}

.fa-paw-alt:before {
  content: "\f701";
}

.fa-paw-claws:before {
  content: "\f702";
}

.fa-paypal:before {
  content: "\f1ed";
}

.fa-peace:before {
  content: "\f67c";
}

.fa-pegasus:before {
  content: "\f703";
}

.fa-pen:before {
  content: "\f304";
}

.fa-pen-alt:before {
  content: "\f305";
}

.fa-pen-fancy:before {
  content: "\f5ac";
}

.fa-pen-nib:before {
  content: "\f5ad";
}

.fa-pen-square:before {
  content: "\f14b";
}

.fa-pencil:before {
  content: "\f040";
}

.fa-pencil-alt:before {
  content: "\f303";
}

.fa-pencil-paintbrush:before {
  content: "\f618";
}

.fa-pencil-ruler:before {
  content: "\f5ae";
}

.fa-pennant:before {
  content: "\f456";
}

.fa-penny-arcade:before {
  content: "\f704";
}

.fa-people-arrows:before {
  content: "\e068";
}

.fa-people-carry:before {
  content: "\f4ce";
}

.fa-pepper-hot:before {
  content: "\f816";
}

.fa-perbyte:before {
  content: "\e083";
}

.fa-percent:before {
  content: "\f295";
}

.fa-percentage:before {
  content: "\f541";
}

.fa-periscope:before {
  content: "\f3da";
}

.fa-person-booth:before {
  content: "\f756";
}

.fa-person-carry:before {
  content: "\f4cf";
}

.fa-person-dolly:before {
  content: "\f4d0";
}

.fa-person-dolly-empty:before {
  content: "\f4d1";
}

.fa-person-sign:before {
  content: "\f757";
}

.fa-phabricator:before {
  content: "\f3db";
}

.fa-phoenix-framework:before {
  content: "\f3dc";
}

.fa-phoenix-squadron:before {
  content: "\f511";
}

.fa-phone:before {
  content: "\f095";
}

.fa-phone-alt:before {
  content: "\f879";
}

.fa-phone-laptop:before {
  content: "\f87a";
}

.fa-phone-office:before {
  content: "\f67d";
}

.fa-phone-plus:before {
  content: "\f4d2";
}

.fa-phone-rotary:before {
  content: "\f8d3";
}

.fa-phone-slash:before {
  content: "\f3dd";
}

.fa-phone-square:before {
  content: "\f098";
}

.fa-phone-square-alt:before {
  content: "\f87b";
}

.fa-phone-volume:before {
  content: "\f2a0";
}

.fa-photo-video:before {
  content: "\f87c";
}

.fa-php:before {
  content: "\f457";
}

.fa-pi:before {
  content: "\f67e";
}

.fa-piano:before {
  content: "\f8d4";
}

.fa-piano-keyboard:before {
  content: "\f8d5";
}

.fa-pie:before {
  content: "\f705";
}

.fa-pied-piper:before {
  content: "\f2ae";
}

.fa-pied-piper-alt:before {
  content: "\f1a8";
}

.fa-pied-piper-hat:before {
  content: "\f4e5";
}

.fa-pied-piper-pp:before {
  content: "\f1a7";
}

.fa-pied-piper-square:before {
  content: "\e01e";
}

.fa-pig:before {
  content: "\f706";
}

.fa-piggy-bank:before {
  content: "\f4d3";
}

.fa-pills:before {
  content: "\f484";
}

.fa-pinterest:before {
  content: "\f0d2";
}

.fa-pinterest-p:before {
  content: "\f231";
}

.fa-pinterest-square:before {
  content: "\f0d3";
}

.fa-pizza:before {
  content: "\f817";
}

.fa-pizza-slice:before {
  content: "\f818";
}

.fa-place-of-worship:before {
  content: "\f67f";
}

.fa-plane:before {
  content: "\f072";
}

.fa-plane-alt:before {
  content: "\f3de";
}

.fa-plane-arrival:before {
  content: "\f5af";
}

.fa-plane-departure:before {
  content: "\f5b0";
}

.fa-plane-slash:before {
  content: "\e069";
}

.fa-planet-moon:before {
  content: "\e01f";
}

.fa-planet-ringed:before {
  content: "\e020";
}

.fa-play:before {
  content: "\f04b";
}

.fa-play-circle:before {
  content: "\f144";
}

.fa-playstation:before {
  content: "\f3df";
}

.fa-plug:before {
  content: "\f1e6";
}

.fa-plus:before {
  content: "\f067";
}

.fa-plus-circle:before {
  content: "\f055";
}

.fa-plus-hexagon:before {
  content: "\f300";
}

.fa-plus-octagon:before {
  content: "\f301";
}

.fa-plus-square:before {
  content: "\f0fe";
}

.fa-podcast:before {
  content: "\f2ce";
}

.fa-podium:before {
  content: "\f680";
}

.fa-podium-star:before {
  content: "\f758";
}

.fa-police-box:before {
  content: "\e021";
}

.fa-poll:before {
  content: "\f681";
}

.fa-poll-h:before {
  content: "\f682";
}

.fa-poll-people:before {
  content: "\f759";
}

.fa-poo:before {
  content: "\f2fe";
}

.fa-poo-storm:before {
  content: "\f75a";
}

.fa-poop:before {
  content: "\f619";
}

.fa-popcorn:before {
  content: "\f819";
}

.fa-portal-enter:before {
  content: "\e022";
}

.fa-portal-exit:before {
  content: "\e023";
}

.fa-portrait:before {
  content: "\f3e0";
}

.fa-pound-sign:before {
  content: "\f154";
}

.fa-power-off:before {
  content: "\f011";
}

.fa-pray:before {
  content: "\f683";
}

.fa-praying-hands:before {
  content: "\f684";
}

.fa-prescription:before {
  content: "\f5b1";
}

.fa-prescription-bottle:before {
  content: "\f485";
}

.fa-prescription-bottle-alt:before {
  content: "\f486";
}

.fa-presentation:before {
  content: "\f685";
}

.fa-print:before {
  content: "\f02f";
}

.fa-print-search:before {
  content: "\f81a";
}

.fa-print-slash:before {
  content: "\f686";
}

.fa-procedures:before {
  content: "\f487";
}

.fa-product-hunt:before {
  content: "\f288";
}

.fa-project-diagram:before {
  content: "\f542";
}

.fa-projector:before {
  content: "\f8d6";
}

.fa-pump-medical:before {
  content: "\e06a";
}

.fa-pump-soap:before {
  content: "\e06b";
}

.fa-pumpkin:before {
  content: "\f707";
}

.fa-pushed:before {
  content: "\f3e1";
}

.fa-puzzle-piece:before {
  content: "\f12e";
}

.fa-python:before {
  content: "\f3e2";
}

.fa-qq:before {
  content: "\f1d6";
}

.fa-qrcode:before {
  content: "\f029";
}

.fa-question:before {
  content: "\f128";
}

.fa-question-circle:before {
  content: "\f059";
}

.fa-question-square:before {
  content: "\f2fd";
}

.fa-quidditch:before {
  content: "\f458";
}

.fa-quinscape:before {
  content: "\f459";
}

.fa-quora:before {
  content: "\f2c4";
}

.fa-quote-left:before {
  content: "\f10d";
}

.fa-quote-right:before {
  content: "\f10e";
}

.fa-quran:before {
  content: "\f687";
}

.fa-r-project:before {
  content: "\f4f7";
}

.fa-rabbit:before {
  content: "\f708";
}

.fa-rabbit-fast:before {
  content: "\f709";
}

.fa-racquet:before {
  content: "\f45a";
}

.fa-radar:before {
  content: "\e024";
}

.fa-radiation:before {
  content: "\f7b9";
}

.fa-radiation-alt:before {
  content: "\f7ba";
}

.fa-radio:before {
  content: "\f8d7";
}

.fa-radio-alt:before {
  content: "\f8d8";
}

.fa-rainbow:before {
  content: "\f75b";
}

.fa-raindrops:before {
  content: "\f75c";
}

.fa-ram:before {
  content: "\f70a";
}

.fa-ramp-loading:before {
  content: "\f4d4";
}

.fa-random:before {
  content: "\f074";
}

.fa-raspberry-pi:before {
  content: "\f7bb";
}

.fa-ravelry:before {
  content: "\f2d9";
}

.fa-raygun:before {
  content: "\e025";
}

.fa-react:before {
  content: "\f41b";
}

.fa-reacteurope:before {
  content: "\f75d";
}

.fa-readme:before {
  content: "\f4d5";
}

.fa-rebel:before {
  content: "\f1d0";
}

.fa-receipt:before {
  content: "\f543";
}

.fa-record-vinyl:before {
  content: "\f8d9";
}

.fa-rectangle-landscape:before {
  content: "\f2fa";
}

.fa-rectangle-portrait:before {
  content: "\f2fb";
}

.fa-rectangle-wide:before {
  content: "\f2fc";
}

.fa-recycle:before {
  content: "\f1b8";
}

.fa-red-river:before {
  content: "\f3e3";
}

.fa-reddit:before {
  content: "\f1a1";
}

.fa-reddit-alien:before {
  content: "\f281";
}

.fa-reddit-square:before {
  content: "\f1a2";
}

.fa-redhat:before {
  content: "\f7bc";
}

.fa-redo:before {
  content: "\f01e";
}

.fa-redo-alt:before {
  content: "\f2f9";
}

.fa-refrigerator:before {
  content: "\e026";
}

.fa-registered:before {
  content: "\f25d";
}

.fa-remove-format:before {
  content: "\f87d";
}

.fa-renren:before {
  content: "\f18b";
}

.fa-repeat:before {
  content: "\f363";
}

.fa-repeat-1:before {
  content: "\f365";
}

.fa-repeat-1-alt:before {
  content: "\f366";
}

.fa-repeat-alt:before {
  content: "\f364";
}

.fa-reply:before {
  content: "\f3e5";
}

.fa-reply-all:before {
  content: "\f122";
}

.fa-replyd:before {
  content: "\f3e6";
}

.fa-republican:before {
  content: "\f75e";
}

.fa-researchgate:before {
  content: "\f4f8";
}

.fa-resolving:before {
  content: "\f3e7";
}

.fa-restroom:before {
  content: "\f7bd";
}

.fa-retweet:before {
  content: "\f079";
}

.fa-retweet-alt:before {
  content: "\f361";
}

.fa-rev:before {
  content: "\f5b2";
}

.fa-ribbon:before {
  content: "\f4d6";
}

.fa-ring:before {
  content: "\f70b";
}

.fa-rings-wedding:before {
  content: "\f81b";
}

.fa-road:before {
  content: "\f018";
}

.fa-robot:before {
  content: "\f544";
}

.fa-rocket:before {
  content: "\f135";
}

.fa-rocket-launch:before {
  content: "\e027";
}

.fa-rocketchat:before {
  content: "\f3e8";
}

.fa-rockrms:before {
  content: "\f3e9";
}

.fa-route:before {
  content: "\f4d7";
}

.fa-route-highway:before {
  content: "\f61a";
}

.fa-route-interstate:before {
  content: "\f61b";
}

.fa-router:before {
  content: "\f8da";
}

.fa-rss:before {
  content: "\f09e";
}

.fa-rss-square:before {
  content: "\f143";
}

.fa-ruble-sign:before {
  content: "\f158";
}

.fa-ruler:before {
  content: "\f545";
}

.fa-ruler-combined:before {
  content: "\f546";
}

.fa-ruler-horizontal:before {
  content: "\f547";
}

.fa-ruler-triangle:before {
  content: "\f61c";
}

.fa-ruler-vertical:before {
  content: "\f548";
}

.fa-running:before {
  content: "\f70c";
}

.fa-rupee-sign:before {
  content: "\f156";
}

.fa-rust:before {
  content: "\e07a";
}

.fa-rv:before {
  content: "\f7be";
}

.fa-sack:before {
  content: "\f81c";
}

.fa-sack-dollar:before {
  content: "\f81d";
}

.fa-sad-cry:before {
  content: "\f5b3";
}

.fa-sad-tear:before {
  content: "\f5b4";
}

.fa-safari:before {
  content: "\f267";
}

.fa-salad:before {
  content: "\f81e";
}

.fa-salesforce:before {
  content: "\f83b";
}

.fa-sandwich:before {
  content: "\f81f";
}

.fa-sass:before {
  content: "\f41e";
}

.fa-satellite:before {
  content: "\f7bf";
}

.fa-satellite-dish:before {
  content: "\f7c0";
}

.fa-sausage:before {
  content: "\f820";
}

.fa-save:before {
  content: "\f0c7";
}

.fa-sax-hot:before {
  content: "\f8db";
}

.fa-saxophone:before {
  content: "\f8dc";
}

.fa-scalpel:before {
  content: "\f61d";
}

.fa-scalpel-path:before {
  content: "\f61e";
}

.fa-scanner:before {
  content: "\f488";
}

.fa-scanner-image:before {
  content: "\f8f3";
}

.fa-scanner-keyboard:before {
  content: "\f489";
}

.fa-scanner-touchscreen:before {
  content: "\f48a";
}

.fa-scarecrow:before {
  content: "\f70d";
}

.fa-scarf:before {
  content: "\f7c1";
}

.fa-schlix:before {
  content: "\f3ea";
}

.fa-school:before {
  content: "\f549";
}

.fa-screwdriver:before {
  content: "\f54a";
}

.fa-scribd:before {
  content: "\f28a";
}

.fa-scroll:before {
  content: "\f70e";
}

.fa-scroll-old:before {
  content: "\f70f";
}

.fa-scrubber:before {
  content: "\f2f8";
}

.fa-scythe:before {
  content: "\f710";
}

.fa-sd-card:before {
  content: "\f7c2";
}

.fa-search:before {
  content: "\f002";
}

.fa-search-dollar:before {
  content: "\f688";
}

.fa-search-location:before {
  content: "\f689";
}

.fa-search-minus:before {
  content: "\f010";
}

.fa-search-plus:before {
  content: "\f00e";
}

.fa-searchengin:before {
  content: "\f3eb";
}

.fa-seedling:before {
  content: "\f4d8";
}

.fa-sellcast:before {
  content: "\f2da";
}

.fa-sellsy:before {
  content: "\f213";
}

.fa-send-back:before {
  content: "\f87e";
}

.fa-send-backward:before {
  content: "\f87f";
}

.fa-sensor:before {
  content: "\e028";
}

.fa-sensor-alert:before {
  content: "\e029";
}

.fa-sensor-fire:before {
  content: "\e02a";
}

.fa-sensor-on:before {
  content: "\e02b";
}

.fa-sensor-smoke:before {
  content: "\e02c";
}

.fa-server:before {
  content: "\f233";
}

.fa-servicestack:before {
  content: "\f3ec";
}

.fa-shapes:before {
  content: "\f61f";
}

.fa-share:before {
  content: "\f064";
}

.fa-share-all:before {
  content: "\f367";
}

.fa-share-alt:before {
  content: "\f1e0";
}

.fa-share-alt-square:before {
  content: "\f1e1";
}

.fa-share-square:before {
  content: "\f14d";
}

.fa-sheep:before {
  content: "\f711";
}

.fa-shekel-sign:before {
  content: "\f20b";
}

.fa-shield:before {
  content: "\f132";
}

.fa-shield-alt:before {
  content: "\f3ed";
}

.fa-shield-check:before {
  content: "\f2f7";
}

.fa-shield-cross:before {
  content: "\f712";
}

.fa-shield-virus:before {
  content: "\e06c";
}

.fa-ship:before {
  content: "\f21a";
}

.fa-shipping-fast:before {
  content: "\f48b";
}

.fa-shipping-timed:before {
  content: "\f48c";
}

.fa-shirtsinbulk:before {
  content: "\f214";
}

.fa-shish-kebab:before {
  content: "\f821";
}

.fa-shoe-prints:before {
  content: "\f54b";
}

.fa-shopify:before {
  content: "\e057";
}

.fa-shopping-bag:before {
  content: "\f290";
}

.fa-shopping-basket:before {
  content: "\f291";
}

.fa-shopping-cart:before {
  content: "\f07a";
}

.fa-shopware:before {
  content: "\f5b5";
}

.fa-shovel:before {
  content: "\f713";
}

.fa-shovel-snow:before {
  content: "\f7c3";
}

.fa-shower:before {
  content: "\f2cc";
}

.fa-shredder:before {
  content: "\f68a";
}

.fa-shuttle-van:before {
  content: "\f5b6";
}

.fa-shuttlecock:before {
  content: "\f45b";
}

.fa-sickle:before {
  content: "\f822";
}

.fa-sigma:before {
  content: "\f68b";
}

.fa-sign:before {
  content: "\f4d9";
}

.fa-sign-in:before {
  content: "\f090";
}

.fa-sign-in-alt:before {
  content: "\f2f6";
}

.fa-sign-language:before {
  content: "\f2a7";
}

.fa-sign-out:before {
  content: "\f08b";
}

.fa-sign-out-alt:before {
  content: "\f2f5";
}

.fa-signal:before {
  content: "\f012";
}

.fa-signal-1:before {
  content: "\f68c";
}

.fa-signal-2:before {
  content: "\f68d";
}

.fa-signal-3:before {
  content: "\f68e";
}

.fa-signal-4:before {
  content: "\f68f";
}

.fa-signal-alt:before {
  content: "\f690";
}

.fa-signal-alt-1:before {
  content: "\f691";
}

.fa-signal-alt-2:before {
  content: "\f692";
}

.fa-signal-alt-3:before {
  content: "\f693";
}

.fa-signal-alt-slash:before {
  content: "\f694";
}

.fa-signal-slash:before {
  content: "\f695";
}

.fa-signal-stream:before {
  content: "\f8dd";
}

.fa-signature:before {
  content: "\f5b7";
}

.fa-sim-card:before {
  content: "\f7c4";
}

.fa-simplybuilt:before {
  content: "\f215";
}

.fa-sink:before {
  content: "\e06d";
}

.fa-siren:before {
  content: "\e02d";
}

.fa-siren-on:before {
  content: "\e02e";
}

.fa-sistrix:before {
  content: "\f3ee";
}

.fa-sitemap:before {
  content: "\f0e8";
}

.fa-sith:before {
  content: "\f512";
}

.fa-skating:before {
  content: "\f7c5";
}

.fa-skeleton:before {
  content: "\f620";
}

.fa-sketch:before {
  content: "\f7c6";
}

.fa-ski-jump:before {
  content: "\f7c7";
}

.fa-ski-lift:before {
  content: "\f7c8";
}

.fa-skiing:before {
  content: "\f7c9";
}

.fa-skiing-nordic:before {
  content: "\f7ca";
}

.fa-skull:before {
  content: "\f54c";
}

.fa-skull-cow:before {
  content: "\f8de";
}

.fa-skull-crossbones:before {
  content: "\f714";
}

.fa-skyatlas:before {
  content: "\f216";
}

.fa-skype:before {
  content: "\f17e";
}

.fa-slack:before {
  content: "\f198";
}

.fa-slack-hash:before {
  content: "\f3ef";
}

.fa-slash:before {
  content: "\f715";
}

.fa-sledding:before {
  content: "\f7cb";
}

.fa-sleigh:before {
  content: "\f7cc";
}

.fa-sliders-h:before {
  content: "\f1de";
}

.fa-sliders-h-square:before {
  content: "\f3f0";
}

.fa-sliders-v:before {
  content: "\f3f1";
}

.fa-sliders-v-square:before {
  content: "\f3f2";
}

.fa-slideshare:before {
  content: "\f1e7";
}

.fa-smile:before {
  content: "\f118";
}

.fa-smile-beam:before {
  content: "\f5b8";
}

.fa-smile-plus:before {
  content: "\f5b9";
}

.fa-smile-wink:before {
  content: "\f4da";
}

.fa-smog:before {
  content: "\f75f";
}

.fa-smoke:before {
  content: "\f760";
}

.fa-smoking:before {
  content: "\f48d";
}

.fa-smoking-ban:before {
  content: "\f54d";
}

.fa-sms:before {
  content: "\f7cd";
}

.fa-snake:before {
  content: "\f716";
}

.fa-snapchat:before {
  content: "\f2ab";
}

.fa-snapchat-ghost:before {
  content: "\f2ac";
}

.fa-snapchat-square:before {
  content: "\f2ad";
}

.fa-snooze:before {
  content: "\f880";
}

.fa-snow-blowing:before {
  content: "\f761";
}

.fa-snowboarding:before {
  content: "\f7ce";
}

.fa-snowflake:before {
  content: "\f2dc";
}

.fa-snowflakes:before {
  content: "\f7cf";
}

.fa-snowman:before {
  content: "\f7d0";
}

.fa-snowmobile:before {
  content: "\f7d1";
}

.fa-snowplow:before {
  content: "\f7d2";
}

.fa-soap:before {
  content: "\e06e";
}

.fa-socks:before {
  content: "\f696";
}

.fa-solar-panel:before {
  content: "\f5ba";
}

.fa-solar-system:before {
  content: "\e02f";
}

.fa-sort:before {
  content: "\f0dc";
}

.fa-sort-alpha-down:before {
  content: "\f15d";
}

.fa-sort-alpha-down-alt:before {
  content: "\f881";
}

.fa-sort-alpha-up:before {
  content: "\f15e";
}

.fa-sort-alpha-up-alt:before {
  content: "\f882";
}

.fa-sort-alt:before {
  content: "\f883";
}

.fa-sort-amount-down:before {
  content: "\f160";
}

.fa-sort-amount-down-alt:before {
  content: "\f884";
}

.fa-sort-amount-up:before {
  content: "\f161";
}

.fa-sort-amount-up-alt:before {
  content: "\f885";
}

.fa-sort-circle:before {
  content: "\e030";
}

.fa-sort-circle-down:before {
  content: "\e031";
}

.fa-sort-circle-up:before {
  content: "\e032";
}

.fa-sort-down:before {
  content: "\f0dd";
}

.fa-sort-numeric-down:before {
  content: "\f162";
}

.fa-sort-numeric-down-alt:before {
  content: "\f886";
}

.fa-sort-numeric-up:before {
  content: "\f163";
}

.fa-sort-numeric-up-alt:before {
  content: "\f887";
}

.fa-sort-shapes-down:before {
  content: "\f888";
}

.fa-sort-shapes-down-alt:before {
  content: "\f889";
}

.fa-sort-shapes-up:before {
  content: "\f88a";
}

.fa-sort-shapes-up-alt:before {
  content: "\f88b";
}

.fa-sort-size-down:before {
  content: "\f88c";
}

.fa-sort-size-down-alt:before {
  content: "\f88d";
}

.fa-sort-size-up:before {
  content: "\f88e";
}

.fa-sort-size-up-alt:before {
  content: "\f88f";
}

.fa-sort-up:before {
  content: "\f0de";
}

.fa-soundcloud:before {
  content: "\f1be";
}

.fa-soup:before {
  content: "\f823";
}

.fa-sourcetree:before {
  content: "\f7d3";
}

.fa-spa:before {
  content: "\f5bb";
}

.fa-space-shuttle:before {
  content: "\f197";
}

.fa-space-station-moon:before {
  content: "\e033";
}

.fa-space-station-moon-alt:before {
  content: "\e034";
}

.fa-spade:before {
  content: "\f2f4";
}

.fa-sparkles:before {
  content: "\f890";
}

.fa-speakap:before {
  content: "\f3f3";
}

.fa-speaker:before {
  content: "\f8df";
}

.fa-speaker-deck:before {
  content: "\f83c";
}

.fa-speakers:before {
  content: "\f8e0";
}

.fa-spell-check:before {
  content: "\f891";
}

.fa-spider:before {
  content: "\f717";
}

.fa-spider-black-widow:before {
  content: "\f718";
}

.fa-spider-web:before {
  content: "\f719";
}

.fa-spinner:before {
  content: "\f110";
}

.fa-spinner-third:before {
  content: "\f3f4";
}

.fa-splotch:before {
  content: "\f5bc";
}

.fa-spotify:before {
  content: "\f1bc";
}

.fa-spray-can:before {
  content: "\f5bd";
}

.fa-sprinkler:before {
  content: "\e035";
}

.fa-square:before {
  content: "\f0c8";
}

.fa-square-full:before {
  content: "\f45c";
}

.fa-square-root:before {
  content: "\f697";
}

.fa-square-root-alt:before {
  content: "\f698";
}

.fa-squarespace:before {
  content: "\f5be";
}

.fa-squirrel:before {
  content: "\f71a";
}

.fa-stack-exchange:before {
  content: "\f18d";
}

.fa-stack-overflow:before {
  content: "\f16c";
}

.fa-stackpath:before {
  content: "\f842";
}

.fa-staff:before {
  content: "\f71b";
}

.fa-stamp:before {
  content: "\f5bf";
}

.fa-star:before {
  content: "\f005";
}

.fa-star-and-crescent:before {
  content: "\f699";
}

.fa-star-christmas:before {
  content: "\f7d4";
}

.fa-star-exclamation:before {
  content: "\f2f3";
}

.fa-star-half:before {
  content: "\f089";
}

.fa-star-half-alt:before {
  content: "\f5c0";
}

.fa-star-of-david:before {
  content: "\f69a";
}

.fa-star-of-life:before {
  content: "\f621";
}

.fa-star-shooting:before {
  content: "\e036";
}

.fa-starfighter:before {
  content: "\e037";
}

.fa-starfighter-alt:before {
  content: "\e038";
}

.fa-stars:before {
  content: "\f762";
}

.fa-starship:before {
  content: "\e039";
}

.fa-starship-freighter:before {
  content: "\e03a";
}

.fa-staylinked:before {
  content: "\f3f5";
}

.fa-steak:before {
  content: "\f824";
}

.fa-steam:before {
  content: "\f1b6";
}

.fa-steam-square:before {
  content: "\f1b7";
}

.fa-steam-symbol:before {
  content: "\f3f6";
}

.fa-steering-wheel:before {
  content: "\f622";
}

.fa-step-backward:before {
  content: "\f048";
}

.fa-step-forward:before {
  content: "\f051";
}

.fa-stethoscope:before {
  content: "\f0f1";
}

.fa-sticker-mule:before {
  content: "\f3f7";
}

.fa-sticky-note:before {
  content: "\f249";
}

.fa-stocking:before {
  content: "\f7d5";
}

.fa-stomach:before {
  content: "\f623";
}

.fa-stop:before {
  content: "\f04d";
}

.fa-stop-circle:before {
  content: "\f28d";
}

.fa-stopwatch:before {
  content: "\f2f2";
}

.fa-stopwatch-20:before {
  content: "\e06f";
}

.fa-store:before {
  content: "\f54e";
}

.fa-store-alt:before {
  content: "\f54f";
}

.fa-store-alt-slash:before {
  content: "\e070";
}

.fa-store-slash:before {
  content: "\e071";
}

.fa-strava:before {
  content: "\f428";
}

.fa-stream:before {
  content: "\f550";
}

.fa-street-view:before {
  content: "\f21d";
}

.fa-stretcher:before {
  content: "\f825";
}

.fa-strikethrough:before {
  content: "\f0cc";
}

.fa-stripe:before {
  content: "\f429";
}

.fa-stripe-s:before {
  content: "\f42a";
}

.fa-stroopwafel:before {
  content: "\f551";
}

.fa-studiovinari:before {
  content: "\f3f8";
}

.fa-stumbleupon:before {
  content: "\f1a4";
}

.fa-stumbleupon-circle:before {
  content: "\f1a3";
}

.fa-subscript:before {
  content: "\f12c";
}

.fa-subway:before {
  content: "\f239";
}

.fa-suitcase:before {
  content: "\f0f2";
}

.fa-suitcase-rolling:before {
  content: "\f5c1";
}

.fa-sun:before {
  content: "\f185";
}

.fa-sun-cloud:before {
  content: "\f763";
}

.fa-sun-dust:before {
  content: "\f764";
}

.fa-sun-haze:before {
  content: "\f765";
}

.fa-sunglasses:before {
  content: "\f892";
}

.fa-sunrise:before {
  content: "\f766";
}

.fa-sunset:before {
  content: "\f767";
}

.fa-superpowers:before {
  content: "\f2dd";
}

.fa-superscript:before {
  content: "\f12b";
}

.fa-supple:before {
  content: "\f3f9";
}

.fa-surprise:before {
  content: "\f5c2";
}

.fa-suse:before {
  content: "\f7d6";
}

.fa-swatchbook:before {
  content: "\f5c3";
}

.fa-swift:before {
  content: "\f8e1";
}

.fa-swimmer:before {
  content: "\f5c4";
}

.fa-swimming-pool:before {
  content: "\f5c5";
}

.fa-sword:before {
  content: "\f71c";
}

.fa-sword-laser:before {
  content: "\e03b";
}

.fa-sword-laser-alt:before {
  content: "\e03c";
}

.fa-swords:before {
  content: "\f71d";
}

.fa-swords-laser:before {
  content: "\e03d";
}

.fa-symfony:before {
  content: "\f83d";
}

.fa-synagogue:before {
  content: "\f69b";
}

.fa-sync:before {
  content: "\f021";
}

.fa-sync-alt:before {
  content: "\f2f1";
}

.fa-syringe:before {
  content: "\f48e";
}

.fa-table:before {
  content: "\f0ce";
}

.fa-table-tennis:before {
  content: "\f45d";
}

.fa-tablet:before {
  content: "\f10a";
}

.fa-tablet-alt:before {
  content: "\f3fa";
}

.fa-tablet-android:before {
  content: "\f3fb";
}

.fa-tablet-android-alt:before {
  content: "\f3fc";
}

.fa-tablet-rugged:before {
  content: "\f48f";
}

.fa-tablets:before {
  content: "\f490";
}

.fa-tachometer:before {
  content: "\f0e4";
}

.fa-tachometer-alt:before {
  content: "\f3fd";
}

.fa-tachometer-alt-average:before {
  content: "\f624";
}

.fa-tachometer-alt-fast:before {
  content: "\f625";
}

.fa-tachometer-alt-fastest:before {
  content: "\f626";
}

.fa-tachometer-alt-slow:before {
  content: "\f627";
}

.fa-tachometer-alt-slowest:before {
  content: "\f628";
}

.fa-tachometer-average:before {
  content: "\f629";
}

.fa-tachometer-fast:before {
  content: "\f62a";
}

.fa-tachometer-fastest:before {
  content: "\f62b";
}

.fa-tachometer-slow:before {
  content: "\f62c";
}

.fa-tachometer-slowest:before {
  content: "\f62d";
}

.fa-taco:before {
  content: "\f826";
}

.fa-tag:before {
  content: "\f02b";
}

.fa-tags:before {
  content: "\f02c";
}

.fa-tally:before {
  content: "\f69c";
}

.fa-tanakh:before {
  content: "\f827";
}

.fa-tape:before {
  content: "\f4db";
}

.fa-tasks:before {
  content: "\f0ae";
}

.fa-tasks-alt:before {
  content: "\f828";
}

.fa-taxi:before {
  content: "\f1ba";
}

.fa-teamspeak:before {
  content: "\f4f9";
}

.fa-teeth:before {
  content: "\f62e";
}

.fa-teeth-open:before {
  content: "\f62f";
}

.fa-telegram:before {
  content: "\f2c6";
}

.fa-telegram-plane:before {
  content: "\f3fe";
}

.fa-telescope:before {
  content: "\e03e";
}

.fa-temperature-down:before {
  content: "\e03f";
}

.fa-temperature-frigid:before {
  content: "\f768";
}

.fa-temperature-high:before {
  content: "\f769";
}

.fa-temperature-hot:before {
  content: "\f76a";
}

.fa-temperature-low:before {
  content: "\f76b";
}

.fa-temperature-up:before {
  content: "\e040";
}

.fa-tencent-weibo:before {
  content: "\f1d5";
}

.fa-tenge:before {
  content: "\f7d7";
}

.fa-tennis-ball:before {
  content: "\f45e";
}

.fa-terminal:before {
  content: "\f120";
}

.fa-text:before {
  content: "\f893";
}

.fa-text-height:before {
  content: "\f034";
}

.fa-text-size:before {
  content: "\f894";
}

.fa-text-width:before {
  content: "\f035";
}

.fa-th:before {
  content: "\f00a";
}

.fa-th-large:before {
  content: "\f009";
}

.fa-th-list:before {
  content: "\f00b";
}

.fa-the-red-yeti:before {
  content: "\f69d";
}

.fa-theater-masks:before {
  content: "\f630";
}

.fa-themeco:before {
  content: "\f5c6";
}

.fa-themeisle:before {
  content: "\f2b2";
}

.fa-thermometer:before {
  content: "\f491";
}

.fa-thermometer-empty:before {
  content: "\f2cb";
}

.fa-thermometer-full:before {
  content: "\f2c7";
}

.fa-thermometer-half:before {
  content: "\f2c9";
}

.fa-thermometer-quarter:before {
  content: "\f2ca";
}

.fa-thermometer-three-quarters:before {
  content: "\f2c8";
}

.fa-theta:before {
  content: "\f69e";
}

.fa-think-peaks:before {
  content: "\f731";
}

.fa-thumbs-down:before {
  content: "\f165";
}

.fa-thumbs-up:before {
  content: "\f164";
}

.fa-thumbtack:before {
  content: "\f08d";
}

.fa-thunderstorm:before {
  content: "\f76c";
}

.fa-thunderstorm-moon:before {
  content: "\f76d";
}

.fa-thunderstorm-sun:before {
  content: "\f76e";
}

.fa-ticket:before {
  content: "\f145";
}

.fa-ticket-alt:before {
  content: "\f3ff";
}

.fa-tiktok:before {
  content: "\e07b";
}

.fa-tilde:before {
  content: "\f69f";
}

.fa-times:before {
  content: "\f00d";
}

.fa-times-circle:before {
  content: "\f057";
}

.fa-times-hexagon:before {
  content: "\f2ee";
}

.fa-times-octagon:before {
  content: "\f2f0";
}

.fa-times-square:before {
  content: "\f2d3";
}

.fa-tint:before {
  content: "\f043";
}

.fa-tint-slash:before {
  content: "\f5c7";
}

.fa-tire:before {
  content: "\f631";
}

.fa-tire-flat:before {
  content: "\f632";
}

.fa-tire-pressure-warning:before {
  content: "\f633";
}

.fa-tire-rugged:before {
  content: "\f634";
}

.fa-tired:before {
  content: "\f5c8";
}

.fa-toggle-off:before {
  content: "\f204";
}

.fa-toggle-on:before {
  content: "\f205";
}

.fa-toilet:before {
  content: "\f7d8";
}

.fa-toilet-paper:before {
  content: "\f71e";
}

.fa-toilet-paper-alt:before {
  content: "\f71f";
}

.fa-toilet-paper-slash:before {
  content: "\e072";
}

.fa-tombstone:before {
  content: "\f720";
}

.fa-tombstone-alt:before {
  content: "\f721";
}

.fa-toolbox:before {
  content: "\f552";
}

.fa-tools:before {
  content: "\f7d9";
}

.fa-tooth:before {
  content: "\f5c9";
}

.fa-toothbrush:before {
  content: "\f635";
}

.fa-torah:before {
  content: "\f6a0";
}

.fa-torii-gate:before {
  content: "\f6a1";
}

.fa-tornado:before {
  content: "\f76f";
}

.fa-tractor:before {
  content: "\f722";
}

.fa-trade-federation:before {
  content: "\f513";
}

.fa-trademark:before {
  content: "\f25c";
}

.fa-traffic-cone:before {
  content: "\f636";
}

.fa-traffic-light:before {
  content: "\f637";
}

.fa-traffic-light-go:before {
  content: "\f638";
}

.fa-traffic-light-slow:before {
  content: "\f639";
}

.fa-traffic-light-stop:before {
  content: "\f63a";
}

.fa-trailer:before {
  content: "\e041";
}

.fa-train:before {
  content: "\f238";
}

.fa-tram:before {
  content: "\f7da";
}

.fa-transgender:before {
  content: "\f224";
}

.fa-transgender-alt:before {
  content: "\f225";
}

.fa-transporter:before {
  content: "\e042";
}

.fa-transporter-1:before {
  content: "\e043";
}

.fa-transporter-2:before {
  content: "\e044";
}

.fa-transporter-3:before {
  content: "\e045";
}

.fa-transporter-empty:before {
  content: "\e046";
}

.fa-trash:before {
  content: "\f1f8";
}

.fa-trash-alt:before {
  content: "\f2ed";
}

.fa-trash-restore:before {
  content: "\f829";
}

.fa-trash-restore-alt:before {
  content: "\f82a";
}

.fa-trash-undo:before {
  content: "\f895";
}

.fa-trash-undo-alt:before {
  content: "\f896";
}

.fa-treasure-chest:before {
  content: "\f723";
}

.fa-tree:before {
  content: "\f1bb";
}

.fa-tree-alt:before {
  content: "\f400";
}

.fa-tree-christmas:before {
  content: "\f7db";
}

.fa-tree-decorated:before {
  content: "\f7dc";
}

.fa-tree-large:before {
  content: "\f7dd";
}

.fa-tree-palm:before {
  content: "\f82b";
}

.fa-trees:before {
  content: "\f724";
}

.fa-trello:before {
  content: "\f181";
}

.fa-triangle:before {
  content: "\f2ec";
}

.fa-triangle-music:before {
  content: "\f8e2";
}

.fa-trophy:before {
  content: "\f091";
}

.fa-trophy-alt:before {
  content: "\f2eb";
}

.fa-truck:before {
  content: "\f0d1";
}

.fa-truck-container:before {
  content: "\f4dc";
}

.fa-truck-couch:before {
  content: "\f4dd";
}

.fa-truck-loading:before {
  content: "\f4de";
}

.fa-truck-monster:before {
  content: "\f63b";
}

.fa-truck-moving:before {
  content: "\f4df";
}

.fa-truck-pickup:before {
  content: "\f63c";
}

.fa-truck-plow:before {
  content: "\f7de";
}

.fa-truck-ramp:before {
  content: "\f4e0";
}

.fa-trumpet:before {
  content: "\f8e3";
}

.fa-tshirt:before {
  content: "\f553";
}

.fa-tty:before {
  content: "\f1e4";
}

.fa-tumblr:before {
  content: "\f173";
}

.fa-tumblr-square:before {
  content: "\f174";
}

.fa-turkey:before {
  content: "\f725";
}

.fa-turntable:before {
  content: "\f8e4";
}

.fa-turtle:before {
  content: "\f726";
}

.fa-tv:before {
  content: "\f26c";
}

.fa-tv-alt:before {
  content: "\f8e5";
}

.fa-tv-music:before {
  content: "\f8e6";
}

.fa-tv-retro:before {
  content: "\f401";
}

.fa-twitch:before {
  content: "\f1e8";
}

.fa-twitter:before {
  content: "\f099";
}

.fa-twitter-square:before {
  content: "\f081";
}

.fa-typewriter:before {
  content: "\f8e7";
}

.fa-typo3:before {
  content: "\f42b";
}

.fa-uber:before {
  content: "\f402";
}

.fa-ubuntu:before {
  content: "\f7df";
}

.fa-ufo:before {
  content: "\e047";
}

.fa-ufo-beam:before {
  content: "\e048";
}

.fa-uikit:before {
  content: "\f403";
}

.fa-umbraco:before {
  content: "\f8e8";
}

.fa-umbrella:before {
  content: "\f0e9";
}

.fa-umbrella-beach:before {
  content: "\f5ca";
}

.fa-uncharted:before {
  content: "\e084";
}

.fa-underline:before {
  content: "\f0cd";
}

.fa-undo:before {
  content: "\f0e2";
}

.fa-undo-alt:before {
  content: "\f2ea";
}

.fa-unicorn:before {
  content: "\f727";
}

.fa-union:before {
  content: "\f6a2";
}

.fa-uniregistry:before {
  content: "\f404";
}

.fa-unity:before {
  content: "\e049";
}

.fa-universal-access:before {
  content: "\f29a";
}

.fa-university:before {
  content: "\f19c";
}

.fa-unlink:before {
  content: "\f127";
}

.fa-unlock:before {
  content: "\f09c";
}

.fa-unlock-alt:before {
  content: "\f13e";
}

.fa-unsplash:before {
  content: "\e07c";
}

.fa-untappd:before {
  content: "\f405";
}

.fa-upload:before {
  content: "\f093";
}

.fa-ups:before {
  content: "\f7e0";
}

.fa-usb:before {
  content: "\f287";
}

.fa-usb-drive:before {
  content: "\f8e9";
}

.fa-usd-circle:before {
  content: "\f2e8";
}

.fa-usd-square:before {
  content: "\f2e9";
}

.fa-user:before {
  content: "\f007";
}

.fa-user-alien:before {
  content: "\e04a";
}

.fa-user-alt:before {
  content: "\f406";
}

.fa-user-alt-slash:before {
  content: "\f4fa";
}

.fa-user-astronaut:before {
  content: "\f4fb";
}

.fa-user-chart:before {
  content: "\f6a3";
}

.fa-user-check:before {
  content: "\f4fc";
}

.fa-user-circle:before {
  content: "\f2bd";
}

.fa-user-clock:before {
  content: "\f4fd";
}

.fa-user-cog:before {
  content: "\f4fe";
}

.fa-user-cowboy:before {
  content: "\f8ea";
}

.fa-user-crown:before {
  content: "\f6a4";
}

.fa-user-edit:before {
  content: "\f4ff";
}

.fa-user-friends:before {
  content: "\f500";
}

.fa-user-graduate:before {
  content: "\f501";
}

.fa-user-hard-hat:before {
  content: "\f82c";
}

.fa-user-headset:before {
  content: "\f82d";
}

.fa-user-injured:before {
  content: "\f728";
}

.fa-user-lock:before {
  content: "\f502";
}

.fa-user-md:before {
  content: "\f0f0";
}

.fa-user-md-chat:before {
  content: "\f82e";
}

.fa-user-minus:before {
  content: "\f503";
}

.fa-user-music:before {
  content: "\f8eb";
}

.fa-user-ninja:before {
  content: "\f504";
}

.fa-user-nurse:before {
  content: "\f82f";
}

.fa-user-plus:before {
  content: "\f234";
}

.fa-user-robot:before {
  content: "\e04b";
}

.fa-user-secret:before {
  content: "\f21b";
}

.fa-user-shield:before {
  content: "\f505";
}

.fa-user-slash:before {
  content: "\f506";
}

.fa-user-tag:before {
  content: "\f507";
}

.fa-user-tie:before {
  content: "\f508";
}

.fa-user-times:before {
  content: "\f235";
}

.fa-user-unlock:before {
  content: "\e058";
}

.fa-user-visor:before {
  content: "\e04c";
}

.fa-users:before {
  content: "\f0c0";
}

.fa-users-class:before {
  content: "\f63d";
}

.fa-users-cog:before {
  content: "\f509";
}

.fa-users-crown:before {
  content: "\f6a5";
}

.fa-users-medical:before {
  content: "\f830";
}

.fa-users-slash:before {
  content: "\e073";
}

.fa-usps:before {
  content: "\f7e1";
}

.fa-ussunnah:before {
  content: "\f407";
}

.fa-utensil-fork:before {
  content: "\f2e3";
}

.fa-utensil-knife:before {
  content: "\f2e4";
}

.fa-utensil-spoon:before {
  content: "\f2e5";
}

.fa-utensils:before {
  content: "\f2e7";
}

.fa-utensils-alt:before {
  content: "\f2e6";
}

.fa-vaadin:before {
  content: "\f408";
}

.fa-vacuum:before {
  content: "\e04d";
}

.fa-vacuum-robot:before {
  content: "\e04e";
}

.fa-value-absolute:before {
  content: "\f6a6";
}

.fa-vector-square:before {
  content: "\f5cb";
}

.fa-venus:before {
  content: "\f221";
}

.fa-venus-double:before {
  content: "\f226";
}

.fa-venus-mars:before {
  content: "\f228";
}

.fa-vest:before {
  content: "\e085";
}

.fa-vest-patches:before {
  content: "\e086";
}

.fa-vhs:before {
  content: "\f8ec";
}

.fa-viacoin:before {
  content: "\f237";
}

.fa-viadeo:before {
  content: "\f2a9";
}

.fa-viadeo-square:before {
  content: "\f2aa";
}

.fa-vial:before {
  content: "\f492";
}

.fa-vials:before {
  content: "\f493";
}

.fa-viber:before {
  content: "\f409";
}

.fa-video:before {
  content: "\f03d";
}

.fa-video-plus:before {
  content: "\f4e1";
}

.fa-video-slash:before {
  content: "\f4e2";
}

.fa-vihara:before {
  content: "\f6a7";
}

.fa-vimeo:before {
  content: "\f40a";
}

.fa-vimeo-square:before {
  content: "\f194";
}

.fa-vimeo-v:before {
  content: "\f27d";
}

.fa-vine:before {
  content: "\f1ca";
}

.fa-violin:before {
  content: "\f8ed";
}

.fa-virus:before {
  content: "\e074";
}

.fa-virus-slash:before {
  content: "\e075";
}

.fa-viruses:before {
  content: "\e076";
}

.fa-vk:before {
  content: "\f189";
}

.fa-vnv:before {
  content: "\f40b";
}

.fa-voicemail:before {
  content: "\f897";
}

.fa-volcano:before {
  content: "\f770";
}

.fa-volleyball-ball:before {
  content: "\f45f";
}

.fa-volume:before {
  content: "\f6a8";
}

.fa-volume-down:before {
  content: "\f027";
}

.fa-volume-mute:before {
  content: "\f6a9";
}

.fa-volume-off:before {
  content: "\f026";
}

.fa-volume-slash:before {
  content: "\f2e2";
}

.fa-volume-up:before {
  content: "\f028";
}

.fa-vote-nay:before {
  content: "\f771";
}

.fa-vote-yea:before {
  content: "\f772";
}

.fa-vr-cardboard:before {
  content: "\f729";
}

.fa-vuejs:before {
  content: "\f41f";
}

.fa-wagon-covered:before {
  content: "\f8ee";
}

.fa-walker:before {
  content: "\f831";
}

.fa-walkie-talkie:before {
  content: "\f8ef";
}

.fa-walking:before {
  content: "\f554";
}

.fa-wallet:before {
  content: "\f555";
}

.fa-wand:before {
  content: "\f72a";
}

.fa-wand-magic:before {
  content: "\f72b";
}

.fa-warehouse:before {
  content: "\f494";
}

.fa-warehouse-alt:before {
  content: "\f495";
}

.fa-washer:before {
  content: "\f898";
}

.fa-watch:before {
  content: "\f2e1";
}

.fa-watch-calculator:before {
  content: "\f8f0";
}

.fa-watch-fitness:before {
  content: "\f63e";
}

.fa-watchman-monitoring:before {
  content: "\e087";
}

.fa-water:before {
  content: "\f773";
}

.fa-water-lower:before {
  content: "\f774";
}

.fa-water-rise:before {
  content: "\f775";
}

.fa-wave-sine:before {
  content: "\f899";
}

.fa-wave-square:before {
  content: "\f83e";
}

.fa-wave-triangle:before {
  content: "\f89a";
}

.fa-waveform:before {
  content: "\f8f1";
}

.fa-waveform-path:before {
  content: "\f8f2";
}

.fa-waze:before {
  content: "\f83f";
}

.fa-webcam:before {
  content: "\f832";
}

.fa-webcam-slash:before {
  content: "\f833";
}

.fa-weebly:before {
  content: "\f5cc";
}

.fa-weibo:before {
  content: "\f18a";
}

.fa-weight:before {
  content: "\f496";
}

.fa-weight-hanging:before {
  content: "\f5cd";
}

.fa-weixin:before {
  content: "\f1d7";
}

.fa-whale:before {
  content: "\f72c";
}

.fa-whatsapp:before {
  content: "\f232";
}

.fa-whatsapp-square:before {
  content: "\f40c";
}

.fa-wheat:before {
  content: "\f72d";
}

.fa-wheelchair:before {
  content: "\f193";
}

.fa-whistle:before {
  content: "\f460";
}

.fa-whmcs:before {
  content: "\f40d";
}

.fa-wifi:before {
  content: "\f1eb";
}

.fa-wifi-1:before {
  content: "\f6aa";
}

.fa-wifi-2:before {
  content: "\f6ab";
}

.fa-wifi-slash:before {
  content: "\f6ac";
}

.fa-wikipedia-w:before {
  content: "\f266";
}

.fa-wind:before {
  content: "\f72e";
}

.fa-wind-turbine:before {
  content: "\f89b";
}

.fa-wind-warning:before {
  content: "\f776";
}

.fa-window:before {
  content: "\f40e";
}

.fa-window-alt:before {
  content: "\f40f";
}

.fa-window-close:before {
  content: "\f410";
}

.fa-window-frame:before {
  content: "\e04f";
}

.fa-window-frame-open:before {
  content: "\e050";
}

.fa-window-maximize:before {
  content: "\f2d0";
}

.fa-window-minimize:before {
  content: "\f2d1";
}

.fa-window-restore:before {
  content: "\f2d2";
}

.fa-windows:before {
  content: "\f17a";
}

.fa-windsock:before {
  content: "\f777";
}

.fa-wine-bottle:before {
  content: "\f72f";
}

.fa-wine-glass:before {
  content: "\f4e3";
}

.fa-wine-glass-alt:before {
  content: "\f5ce";
}

.fa-wix:before {
  content: "\f5cf";
}

.fa-wizards-of-the-coast:before {
  content: "\f730";
}

.fa-wodu:before {
  content: "\e088";
}

.fa-wolf-pack-battalion:before {
  content: "\f514";
}

.fa-won-sign:before {
  content: "\f159";
}

.fa-wordpress:before {
  content: "\f19a";
}

.fa-wordpress-simple:before {
  content: "\f411";
}

.fa-wpbeginner:before {
  content: "\f297";
}

.fa-wpexplorer:before {
  content: "\f2de";
}

.fa-wpforms:before {
  content: "\f298";
}

.fa-wpressr:before {
  content: "\f3e4";
}

.fa-wreath:before {
  content: "\f7e2";
}

.fa-wrench:before {
  content: "\f0ad";
}

.fa-x-ray:before {
  content: "\f497";
}

.fa-xbox:before {
  content: "\f412";
}

.fa-xing:before {
  content: "\f168";
}

.fa-xing-square:before {
  content: "\f169";
}

.fa-y-combinator:before {
  content: "\f23b";
}

.fa-yahoo:before {
  content: "\f19e";
}

.fa-yammer:before {
  content: "\f840";
}

.fa-yandex:before {
  content: "\f413";
}

.fa-yandex-international:before {
  content: "\f414";
}

.fa-yarn:before {
  content: "\f7e3";
}

.fa-yelp:before {
  content: "\f1e9";
}

.fa-yen-sign:before {
  content: "\f157";
}

.fa-yin-yang:before {
  content: "\f6ad";
}

.fa-yoast:before {
  content: "\f2b1";
}

.fa-youtube:before {
  content: "\f167";
}

.fa-youtube-square:before {
  content: "\f431";
}

.fa-zhihu:before {
  content: "\f63f";
}

.sr-only {
  border: 0;
  clip: rect(0, 0, 0, 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
}

.sr-only-focusable:active, .sr-only-focusable:focus {
  clip: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  position: static;
  width: auto;
}

/*!
 * Font Awesome Pro 5.15.4 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license (Commercial License)
 */
@font-face {
  font-family: "Font Awesome 5 Pro";
  font-style: normal;
  font-weight: 400;
  font-display: auto;
  src: url("../fonts/font-awesome/fa-regular-400.eot");
  src: url("../fonts/font-awesome/fa-regular-400.eot?#iefix") format("embedded-opentype"), url("../fonts/font-awesome/fa-regular-400.woff2") format("woff2"), url("../fonts/font-awesome/fa-regular-400.woff") format("woff"), url("../fonts/font-awesome/fa-regular-400.ttf") format("truetype"), url("../fonts/font-awesome/fa-regular-400.svg#fontawesome") format("svg");
}
.far {
  font-family: "Font Awesome 5 Pro";
  font-weight: 400;
}

/*!
 * Font Awesome Pro 5.15.4 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license (Commercial License)
 */
@font-face {
  font-family: "Font Awesome 5 Pro";
  font-style: normal;
  font-weight: 900;
  font-display: auto;
  src: url("../fonts/font-awesome/fa-solid-900.eot");
  src: url("../fonts/font-awesome/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("../fonts/font-awesome/fa-solid-900.woff2") format("woff2"), url("../fonts/font-awesome/fa-solid-900.woff") format("woff"), url("../fonts/font-awesome/fa-solid-900.ttf") format("truetype"), url("../fonts/font-awesome/fa-solid-900.svg#fontawesome") format("svg");
}
.fa,
.fas {
  font-family: "Font Awesome 5 Pro";
  font-weight: 900;
}

/*!
 * Font Awesome Pro 5.15.4 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license (Commercial License)
 */
@font-face {
  font-family: "Font Awesome 5 Pro";
  font-style: normal;
  font-weight: 300;
  font-display: auto;
  src: url("../fonts/font-awesome/fa-light-300.eot");
  src: url("../fonts/font-awesome/fa-light-300.eot?#iefix") format("embedded-opentype"), url("../fonts/font-awesome/fa-light-300.woff2") format("woff2"), url("../fonts/font-awesome/fa-light-300.woff") format("woff"), url("../fonts/font-awesome/fa-light-300.ttf") format("truetype"), url("../fonts/font-awesome/fa-light-300.svg#fontawesome") format("svg");
}
.fal {
  font-family: "Font Awesome 5 Pro";
  font-weight: 300;
}

@font-face {
  font-family: "FrutigerNextPro";
  src: url("../fonts/FrutigerNextPro/FrutigerNextPro-MediumCn_0.otf") format("opentype");
  font-weight: 400;
  font-style: normal;
}
@font-face {
  font-family: "FrutigerNextPro";
  src: url("../fonts/FrutigerNextPro/FrutigerNextPro-BoldCn_0.otf") format("opentype");
  font-weight: 500;
  font-style: normal;
}
@font-face {
  font-family: "FrutigerNextPro";
  src: url("../fonts/FrutigerNextPro/FrutigerNextPro-BlackCn_0.otf") format("opentype");
  font-weight: 700;
  font-style: normal;
}
@font-face {
  font-family: "FrutigerNextPro Regular";
  src: url("../fonts/FrutigerNextPro/FrutigerNextPro-RegularCn_0.otf") format("opentype");
  font-weight: 400;
  font-style: normal;
}
@font-face {
  font-family: "Istok";
  src: url("../fonts/Istok/IstokWeb-Bold.ttf") format("truetype");
  font-weight: bold;
  font-style: normal;
}
@font-face {
  font-family: "Istok";
  src: url("../fonts/Istok/IstokWeb-BoldItalic.ttf") format("truetype");
  font-weight: bold;
  font-style: italic;
}
@font-face {
  font-family: "Istok";
  src: url("../fonts/Istok/IstokWeb-Italic.ttf") format("truetype");
  font-weight: 400;
  font-style: italic;
}
@font-face {
  font-family: "Istok";
  src: url("../fonts/Istok/IstokWeb-Regular.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
}
/* stylelint-disable */
* {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  margin: 0;
  padding: 0;
  border: 0;
  font: inherit;
  color: inherit;
  -webkit-tap-highlight-color: rgba(255, 255, 255, 0);
}
*:hover, *:active, *:focus {
  outline: 0;
}
*::before, *::after {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  color: inherit;
}

html,
body {
  height: 100%;
}

html {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  margin: 0;
  padding: 0;
  border: 0;
  font: inherit;
  color: inherit;
  -webkit-tap-highlight-color: rgba(255, 255, 255, 0);
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section,
form,
main {
  display: block;
}

ol,
ul {
  list-style: none;
}

blockquote,
q {
  quotes: none;
}
blockquote::before, blockquote::after,
q::before,
q::after {
  content: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

img {
  max-width: 100%;
  max-height: 100%;
}

.custom-element {
  display: block;
}

@font-face {
  font-family: Circular;
  src: url("https://s3.eu-central-1.amazonaws.com/spryker/fonts/circular-pro/lineto-circular-pro-book.woff2") format("woff2"), url("https://s3.eu-central-1.amazonaws.com/spryker/fonts/circular-pro/lineto-circular-pro-book.woff") format("woff");
  font-weight: 400;
  font-style: normal;
}
@font-face {
  font-family: Circular;
  src: url("https://s3.eu-central-1.amazonaws.com/spryker/fonts/circular-pro/lineto-circular-pro-medium.woff2") format("woff2"), url("https://s3.eu-central-1.amazonaws.com/spryker/fonts/circular-pro/lineto-circular-pro-medium.woff") format("woff");
  font-weight: 500;
  font-style: normal;
}
@font-face {
  font-family: Circular;
  src: url("https://s3.eu-central-1.amazonaws.com/spryker/fonts/circular-pro/lineto-circular-pro-bold.woff2") format("woff2"), url("https://s3.eu-central-1.amazonaws.com/spryker/fonts/circular-pro/lineto-circular-pro-bold.woff") format("woff");
  font-weight: 700;
  font-style: normal;
}
html {
  font-size: 16px;
}

body {
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  position: relative;
  background-color: #fff;
  color: #666666;
  font-family: "FrutigerNextPro";
}

* {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1 {
  font-weight: 500;
  font-size: 2.5rem;
  line-height: 1.1;
  display: block;
  color: #666666;
}

h2 {
  font-weight: 500;
  font-size: 2rem;
  line-height: 1.2;
  display: block;
  color: #666666;
}

h3 {
  font-weight: 500;
  font-size: 1.5rem;
  line-height: 1.4;
  display: block;
  color: #666666;
}

h4 {
  font-weight: 500;
  font-size: 1.125rem;
  line-height: 1.4;
  display: block;
  color: #666666;
}

h5 {
  font-weight: 500;
  font-size: 1rem;
  line-height: 1.4;
  display: block;
  color: #666666;
}

h6 {
  font-weight: 500;
  font-size: 0.875rem;
  line-height: 1.4;
  display: block;
  color: #666666;
}

a {
  color: #E30613;
  text-decoration: none;
}
a:hover {
  color: #E30613;
}

b,
strong {
  font-weight: 700;
}

i,
em,
cite {
  font-style: italic;
}

hr::after {
  content: "";
  display: table;
  clear: both;
}
hr {
  border-bottom: 1px solid #8f8f8f;
  margin: 0.5rem 0;
}

small {
  font-size: 0.75rem;
}
@media only screen and (min-width: 768px) {
  small {
    font-size: 0.875rem;
  }
}

big {
  font-size: 1.125rem;
}

p,
blockquote,
iframe {
  margin: 0.5rem 0;
}

p {
  font-family: "FrutigerNextPro Regular";
}

.container {
  display: block;
  width: 100%;
  max-width: 1200px;
  margin: auto;
  padding: 0 15px;
}
.container--checkout {
  max-width: 800px;
}
.container--expand {
  max-width: 100%;
}
.container--fat {
  padding: 0;
}
@media only screen and (max-width: 549px) {
  .container--fat {
    padding: 0 -0.9375rem;
  }
}

.col::after {
  content: "";
  display: table;
  clear: both;
}
.col {
  float: left;
  display: block;
  -webkit-box-flex: 0;
      -ms-flex-positive: 0;
          flex-grow: 0;
  -ms-flex-preferred-size: auto;
      flex-basis: auto;
}
@media only screen and (min-width: 0) {
  .col--sm-1 {
    width: calc(100% / 12 * 1);
    min-width: calc(100% / 12 * 1);
  }
  .col--sm-2 {
    width: calc(100% / 12 * 2);
    min-width: calc(100% / 12 * 2);
  }
  .col--sm-3 {
    width: calc(100% / 12 * 3);
    min-width: calc(100% / 12 * 3);
  }
  .col--sm-4 {
    width: calc(100% / 12 * 4);
    min-width: calc(100% / 12 * 4);
  }
  .col--sm-5 {
    width: calc(100% / 12 * 5);
    min-width: calc(100% / 12 * 5);
  }
  .col--sm-6 {
    width: calc(100% / 12 * 6);
    min-width: calc(100% / 12 * 6);
  }
  .col--sm-7 {
    width: calc(100% / 12 * 7);
    min-width: calc(100% / 12 * 7);
  }
  .col--sm-8 {
    width: calc(100% / 12 * 8);
    min-width: calc(100% / 12 * 8);
  }
  .col--sm-9 {
    width: calc(100% / 12 * 9);
    min-width: calc(100% / 12 * 9);
  }
  .col--sm-10 {
    width: calc(100% / 12 * 10);
    min-width: calc(100% / 12 * 10);
  }
  .col--sm-11 {
    width: calc(100% / 12 * 11);
    min-width: calc(100% / 12 * 11);
  }
  .col--sm-12 {
    width: calc(100% / 12 * 12);
    min-width: calc(100% / 12 * 12);
  }
  .col--sm-auto {
    width: auto;
    min-width: 0;
  }
}
@media only screen and (max-width: 549px) {
  .col--sm-first {
    -webkit-box-ordinal-group: 0;
        -ms-flex-order: -1;
            order: -1;
  }
  .col--sm-last {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }
}
@media only screen and (min-width: 550px) {
  .col--md-1 {
    width: calc(100% / 12 * 1);
    min-width: calc(100% / 12 * 1);
  }
  .col--md-2 {
    width: calc(100% / 12 * 2);
    min-width: calc(100% / 12 * 2);
  }
  .col--md-3 {
    width: calc(100% / 12 * 3);
    min-width: calc(100% / 12 * 3);
  }
  .col--md-4 {
    width: calc(100% / 12 * 4);
    min-width: calc(100% / 12 * 4);
  }
  .col--md-5 {
    width: calc(100% / 12 * 5);
    min-width: calc(100% / 12 * 5);
  }
  .col--md-6 {
    width: calc(100% / 12 * 6);
    min-width: calc(100% / 12 * 6);
  }
  .col--md-7 {
    width: calc(100% / 12 * 7);
    min-width: calc(100% / 12 * 7);
  }
  .col--md-8 {
    width: calc(100% / 12 * 8);
    min-width: calc(100% / 12 * 8);
  }
  .col--md-9 {
    width: calc(100% / 12 * 9);
    min-width: calc(100% / 12 * 9);
  }
  .col--md-10 {
    width: calc(100% / 12 * 10);
    min-width: calc(100% / 12 * 10);
  }
  .col--md-11 {
    width: calc(100% / 12 * 11);
    min-width: calc(100% / 12 * 11);
  }
  .col--md-12 {
    width: calc(100% / 12 * 12);
    min-width: calc(100% / 12 * 12);
  }
  .col--md-auto {
    width: auto;
    min-width: 0;
  }
}
@media only screen and (max-width: 769px) {
  .col--md-first {
    -webkit-box-ordinal-group: 0;
        -ms-flex-order: -1;
            order: -1;
  }
  .col--md-last {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }
}
@media only screen and (min-width: 770px) {
  .col--lg-1 {
    width: calc(100% / 12 * 1);
    min-width: calc(100% / 12 * 1);
  }
  .col--lg-2 {
    width: calc(100% / 12 * 2);
    min-width: calc(100% / 12 * 2);
  }
  .col--lg-3 {
    width: calc(100% / 12 * 3);
    min-width: calc(100% / 12 * 3);
  }
  .col--lg-4 {
    width: calc(100% / 12 * 4);
    min-width: calc(100% / 12 * 4);
  }
  .col--lg-5 {
    width: calc(100% / 12 * 5);
    min-width: calc(100% / 12 * 5);
  }
  .col--lg-6 {
    width: calc(100% / 12 * 6);
    min-width: calc(100% / 12 * 6);
  }
  .col--lg-7 {
    width: calc(100% / 12 * 7);
    min-width: calc(100% / 12 * 7);
  }
  .col--lg-8 {
    width: calc(100% / 12 * 8);
    min-width: calc(100% / 12 * 8);
  }
  .col--lg-9 {
    width: calc(100% / 12 * 9);
    min-width: calc(100% / 12 * 9);
  }
  .col--lg-10 {
    width: calc(100% / 12 * 10);
    min-width: calc(100% / 12 * 10);
  }
  .col--lg-11 {
    width: calc(100% / 12 * 11);
    min-width: calc(100% / 12 * 11);
  }
  .col--lg-12 {
    width: calc(100% / 12 * 12);
    min-width: calc(100% / 12 * 12);
  }
  .col--lg-auto {
    width: auto;
    min-width: 0;
  }
}
@media only screen and (max-width: 969px) {
  .col--lg-first {
    -webkit-box-ordinal-group: 0;
        -ms-flex-order: -1;
            order: -1;
  }
  .col--lg-last {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }
}
@media only screen and (min-width: 970px) {
  .col--xl-1 {
    width: calc(100% / 12 * 1);
    min-width: calc(100% / 12 * 1);
  }
  .col--xl-2 {
    width: calc(100% / 12 * 2);
    min-width: calc(100% / 12 * 2);
  }
  .col--xl-3 {
    width: calc(100% / 12 * 3);
    min-width: calc(100% / 12 * 3);
  }
  .col--xl-4 {
    width: calc(100% / 12 * 4);
    min-width: calc(100% / 12 * 4);
  }
  .col--xl-5 {
    width: calc(100% / 12 * 5);
    min-width: calc(100% / 12 * 5);
  }
  .col--xl-6 {
    width: calc(100% / 12 * 6);
    min-width: calc(100% / 12 * 6);
  }
  .col--xl-7 {
    width: calc(100% / 12 * 7);
    min-width: calc(100% / 12 * 7);
  }
  .col--xl-8 {
    width: calc(100% / 12 * 8);
    min-width: calc(100% / 12 * 8);
  }
  .col--xl-9 {
    width: calc(100% / 12 * 9);
    min-width: calc(100% / 12 * 9);
  }
  .col--xl-10 {
    width: calc(100% / 12 * 10);
    min-width: calc(100% / 12 * 10);
  }
  .col--xl-11 {
    width: calc(100% / 12 * 11);
    min-width: calc(100% / 12 * 11);
  }
  .col--xl-12 {
    width: calc(100% / 12 * 12);
    min-width: calc(100% / 12 * 12);
  }
  .col--xl-auto {
    width: auto;
    min-width: 0;
  }
}
@media only screen and (max-width: 1203px) {
  .col--xl-first {
    -webkit-box-ordinal-group: 0;
        -ms-flex-order: -1;
            order: -1;
  }
  .col--xl-last {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }
}
@media only screen and (min-width: 1204px) {
  .col--xxl-1 {
    width: calc(100% / 12 * 1);
    min-width: calc(100% / 12 * 1);
  }
  .col--xxl-2 {
    width: calc(100% / 12 * 2);
    min-width: calc(100% / 12 * 2);
  }
  .col--xxl-3 {
    width: calc(100% / 12 * 3);
    min-width: calc(100% / 12 * 3);
  }
  .col--xxl-4 {
    width: calc(100% / 12 * 4);
    min-width: calc(100% / 12 * 4);
  }
  .col--xxl-5 {
    width: calc(100% / 12 * 5);
    min-width: calc(100% / 12 * 5);
  }
  .col--xxl-6 {
    width: calc(100% / 12 * 6);
    min-width: calc(100% / 12 * 6);
  }
  .col--xxl-7 {
    width: calc(100% / 12 * 7);
    min-width: calc(100% / 12 * 7);
  }
  .col--xxl-8 {
    width: calc(100% / 12 * 8);
    min-width: calc(100% / 12 * 8);
  }
  .col--xxl-9 {
    width: calc(100% / 12 * 9);
    min-width: calc(100% / 12 * 9);
  }
  .col--xxl-10 {
    width: calc(100% / 12 * 10);
    min-width: calc(100% / 12 * 10);
  }
  .col--xxl-11 {
    width: calc(100% / 12 * 11);
    min-width: calc(100% / 12 * 11);
  }
  .col--xxl-12 {
    width: calc(100% / 12 * 12);
    min-width: calc(100% / 12 * 12);
  }
  .col--xxl-auto {
    width: auto;
    min-width: 0;
  }
}
@media only screen and (max-width: 1299px) {
  .col--xxl-first {
    -webkit-box-ordinal-group: 0;
        -ms-flex-order: -1;
            order: -1;
  }
  .col--xxl-last {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }
}
@media only screen and (min-width: 1300px) {
  .col--xxxl-1 {
    width: calc(100% / 12 * 1);
    min-width: calc(100% / 12 * 1);
  }
  .col--xxxl-2 {
    width: calc(100% / 12 * 2);
    min-width: calc(100% / 12 * 2);
  }
  .col--xxxl-3 {
    width: calc(100% / 12 * 3);
    min-width: calc(100% / 12 * 3);
  }
  .col--xxxl-4 {
    width: calc(100% / 12 * 4);
    min-width: calc(100% / 12 * 4);
  }
  .col--xxxl-5 {
    width: calc(100% / 12 * 5);
    min-width: calc(100% / 12 * 5);
  }
  .col--xxxl-6 {
    width: calc(100% / 12 * 6);
    min-width: calc(100% / 12 * 6);
  }
  .col--xxxl-7 {
    width: calc(100% / 12 * 7);
    min-width: calc(100% / 12 * 7);
  }
  .col--xxxl-8 {
    width: calc(100% / 12 * 8);
    min-width: calc(100% / 12 * 8);
  }
  .col--xxxl-9 {
    width: calc(100% / 12 * 9);
    min-width: calc(100% / 12 * 9);
  }
  .col--xxxl-10 {
    width: calc(100% / 12 * 10);
    min-width: calc(100% / 12 * 10);
  }
  .col--xxxl-11 {
    width: calc(100% / 12 * 11);
    min-width: calc(100% / 12 * 11);
  }
  .col--xxxl-12 {
    width: calc(100% / 12 * 12);
    min-width: calc(100% / 12 * 12);
  }
  .col--xxxl-auto {
    width: auto;
    min-width: 0;
  }
}
@media only screen and (max-width: ) {
  .col--xxxl-first {
    -webkit-box-ordinal-group: 0;
        -ms-flex-order: -1;
            order: -1;
  }
  .col--xxxl-last {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }
}
@media only screen and (min-width: 1024px) {
  .col--desktop-1 {
    width: calc(100% / 12 * 1);
    min-width: calc(100% / 12 * 1);
  }
  .col--desktop-2 {
    width: calc(100% / 12 * 2);
    min-width: calc(100% / 12 * 2);
  }
  .col--desktop-3 {
    width: calc(100% / 12 * 3);
    min-width: calc(100% / 12 * 3);
  }
  .col--desktop-4 {
    width: calc(100% / 12 * 4);
    min-width: calc(100% / 12 * 4);
  }
  .col--desktop-5 {
    width: calc(100% / 12 * 5);
    min-width: calc(100% / 12 * 5);
  }
  .col--desktop-6 {
    width: calc(100% / 12 * 6);
    min-width: calc(100% / 12 * 6);
  }
  .col--desktop-7 {
    width: calc(100% / 12 * 7);
    min-width: calc(100% / 12 * 7);
  }
  .col--desktop-8 {
    width: calc(100% / 12 * 8);
    min-width: calc(100% / 12 * 8);
  }
  .col--desktop-9 {
    width: calc(100% / 12 * 9);
    min-width: calc(100% / 12 * 9);
  }
  .col--desktop-10 {
    width: calc(100% / 12 * 10);
    min-width: calc(100% / 12 * 10);
  }
  .col--desktop-11 {
    width: calc(100% / 12 * 11);
    min-width: calc(100% / 12 * 11);
  }
  .col--desktop-12 {
    width: calc(100% / 12 * 12);
    min-width: calc(100% / 12 * 12);
  }
  .col--desktop-auto {
    width: auto;
    min-width: 0;
  }
}
@media only screen and (max-width: 1024px) {
  .col--desktop-first {
    -webkit-box-ordinal-group: 0;
        -ms-flex-order: -1;
            order: -1;
  }
  .col--desktop-last {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }
}
@media only screen and (min-width: 1023px) {
  .col--desktopBefore-1 {
    width: calc(100% / 12 * 1);
    min-width: calc(100% / 12 * 1);
  }
  .col--desktopBefore-2 {
    width: calc(100% / 12 * 2);
    min-width: calc(100% / 12 * 2);
  }
  .col--desktopBefore-3 {
    width: calc(100% / 12 * 3);
    min-width: calc(100% / 12 * 3);
  }
  .col--desktopBefore-4 {
    width: calc(100% / 12 * 4);
    min-width: calc(100% / 12 * 4);
  }
  .col--desktopBefore-5 {
    width: calc(100% / 12 * 5);
    min-width: calc(100% / 12 * 5);
  }
  .col--desktopBefore-6 {
    width: calc(100% / 12 * 6);
    min-width: calc(100% / 12 * 6);
  }
  .col--desktopBefore-7 {
    width: calc(100% / 12 * 7);
    min-width: calc(100% / 12 * 7);
  }
  .col--desktopBefore-8 {
    width: calc(100% / 12 * 8);
    min-width: calc(100% / 12 * 8);
  }
  .col--desktopBefore-9 {
    width: calc(100% / 12 * 9);
    min-width: calc(100% / 12 * 9);
  }
  .col--desktopBefore-10 {
    width: calc(100% / 12 * 10);
    min-width: calc(100% / 12 * 10);
  }
  .col--desktopBefore-11 {
    width: calc(100% / 12 * 11);
    min-width: calc(100% / 12 * 11);
  }
  .col--desktopBefore-12 {
    width: calc(100% / 12 * 12);
    min-width: calc(100% / 12 * 12);
  }
  .col--desktopBefore-auto {
    width: auto;
    min-width: 0;
  }
}
@media only screen and (max-width: 1023px) {
  .col--desktopBefore-first {
    -webkit-box-ordinal-group: 0;
        -ms-flex-order: -1;
            order: -1;
  }
  .col--desktopBefore-last {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }
}
.col--expand {
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
}
.col--mobile-expand {
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
}
@media only screen and (min-width: 768px) {
  .col--mobile-expand {
    -webkit-box-flex: 0;
        -ms-flex-positive: 0;
            flex-grow: 0;
  }
}
@media only screen and (max-width: 549px) {
  .col--sm-hide {
    display: none;
  }
}
@media only screen and (min-width: 549px) and (max-width: 769px) {
  .col--md-hide {
    display: none;
  }
}
.col--top {
  -ms-flex-item-align: start;
      align-self: flex-start;
  margin-bottom: auto;
}
.col--bottom {
  -ms-flex-item-align: end;
      align-self: flex-end;
  margin-top: auto;
}
.col--left {
  justify-self: flex-start;
  margin-right: auto;
}
.col--right {
  justify-self: flex-end;
  margin-left: auto;
}
.col--center {
  justify-self: center;
  margin-left: auto;
  margin-right: auto;
}
.col--middle {
  -ms-flex-item-align: center;
      align-self: center;
  margin-top: auto;
  margin-bottom: auto;
}
.col--equal {
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  -ms-flex-preferred-size: 0;
      flex-basis: 0;
}
.col--bottom-indent {
  padding-bottom: 9px;
}
@media only screen and (min-width: 768px) {
  .col--bottom-indent {
    padding-bottom: 15px;
  }
}

.grid::after {
  content: "";
  display: table;
  clear: both;
}
.grid {
  clear: both;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
}
.grid--wide {
  width: 100%;
}
.grid--top {
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
}
.grid--bottom {
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
}
.grid--left {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
}
.grid--right {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}
.grid--center {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.grid--middle {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.grid--stretch {
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
}
.grid--stretch > .col {
  margin-top: 0;
  margin-bottom: 0;
}
.grid--gap {
  margin-left: -9px;
  margin-right: -9px;
}
@media only screen and (min-width: 768px) {
  .grid--gap {
    margin-left: -15px;
    margin-right: -15px;
  }
}
.grid--gap > .col {
  padding-left: 9px;
  padding-right: 9px;
}
@media only screen and (min-width: 768px) {
  .grid--gap > .col {
    padding-left: 15px;
    padding-right: 15px;
  }
}
.grid--gap-smaller {
  margin-left: -0.3125rem;
  margin-right: -0.3125rem;
}
.grid--gap-smaller > .col {
  padding-left: 0.3125rem;
  padding-right: 0.3125rem;
}
.grid--justify-column {
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
.grid--justify-column > .col {
  margin-top: auto;
  margin-bottom: auto;
}
.grid--justify-column > .col:first-child {
  margin-top: 0;
}
.grid--justify-column > .col:last-of-type {
  margin-bottom: 0;
}
.grid--justify {
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
.grid--justify > .col {
  margin-left: auto;
  margin-right: auto;
}
.grid--justify > .col:first-child {
  margin-left: 0;
}
.grid--justify > .col:last-child {
  margin-right: 0;
}
.grid--nowrap {
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
}
@media only screen and (min-width: 768px) {
  .grid--nowrap-lg-only {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
  }
}
.grid--column {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}
.grid--column-mob-reverse {
  -webkit-box-orient: vertical;
  -webkit-box-direction: reverse;
      -ms-flex-direction: column-reverse;
          flex-direction: column-reverse;
}
@media only screen and (min-width: 768px) {
  .grid--column-mob-reverse {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}
.grid--inline {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
}
.grid.container {
  max-width: 1200px;
}

@-webkit-keyframes spin-to {
  from {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
  }
  to {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}

@keyframes spin-to {
  from {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
  }
  to {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}
@-webkit-keyframes pulse-highlight {
  0% {
    -webkit-transform: scale(1);
            transform: scale(1);
  }
  50% {
    -webkit-transform: scale(1.2);
            transform: scale(1.2);
  }
  100% {
    -webkit-transform: scale(1);
            transform: scale(1);
  }
}
@keyframes pulse-highlight {
  0% {
    -webkit-transform: scale(1);
            transform: scale(1);
  }
  50% {
    -webkit-transform: scale(1.2);
            transform: scale(1.2);
  }
  100% {
    -webkit-transform: scale(1);
            transform: scale(1);
  }
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/CatalogPage/Theme/default/components/molecules/sort/sort.scss ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.sort {
  margin-bottom: 1.25rem;
}
.sort__col {
  font-size: 0.9375rem;
}
@media only screen and (min-width: 768px) {
  .sort__col:not(:last-child) {
    padding-right: 0.5rem;
  }
}
.sort__col--counter {
  font-weight: 500;
  font-size: 0.9375rem;
}
.sort__col--select {
  padding: 0 0.3125rem;
}
@media only screen and (min-width: 768px) {
  .sort__col--select {
    padding: 0;
  }
}
@media only screen and (min-width: 768px) {
  .sort__col--select:not(:last-child) {
    padding-right: 1.875rem;
  }
}
@media only screen and (min-width: 550px) {
  .sort__col--grid-right {
    -webkit-box-pack: end;
    -ms-flex-pack: end;
    justify-content: flex-end;
  }
}
.sort__filter-grid {
  margin: 0 -0.3125rem;
}
@media only screen and (min-width: 768px) {
  .sort__filter-grid {
    margin: 0;
  }
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/CatalogPage/Theme/default/components/molecules/suggestion-product/suggestion-product.scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.suggestion-product {
  padding-bottom: 0.625rem;
}
.suggestion-product__title {
  font-size: 1.0625rem;
  font-weight: 400;
  line-height: normal;
  letter-spacing: 0.0125rem;
  padding-bottom: 1rem;
  padding-top: 1.625rem;
  color: #666666;
}
.suggestion-product__link {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  color: #666666;
  -webkit-transition: color 250ms ease-in-out;
  transition: color 250ms ease-in-out;
}
.suggestion-product__link:hover {
  color: #8f8f8f;
}
.suggestion-product__thumbnail {
  min-width: 2.625rem;
  width: 2.625rem;
  overflow: hidden;
}
.suggestion-product__thumbnail::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.suggestion-product__thumbnail .thumbnail__image {
  top: 0;
  bottom: auto;
  right: auto;
}
.suggestion-product__thumbnail .thumbnail__image-no-image {
  left: calc(50% - 8px);
}
.suggestion-product__name {
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 0.875rem;
  letter-spacing: 0.00625rem;
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/product-detail-page/src/SprykerShop/Yves/ProductDetailPage/Theme/default/components/molecules/product-carousel/style.scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.product-carousel {
  position: relative;
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/atoms/badge/badge.scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.badge {
  font-size: 0.875rem;
  display: inline-block;
  padding: 0.1rem 0.5rem;
  background-color: #fc9fa5;
  color: #b1050f;
}
.badge--hollow {
  border: 1px solid #dadada;
  background: none;
  color: #8f8f8f;
}
.badge--success {
  background-color: #9ff0e1;
  color: #17927b;
}
.badge--warning {
  background-color: #fff7e7;
  color: #fcae04;
}
.badge--alert {
  background-color: #fc9fa5;
  color: #b1050f;
}
.badge {
  border-radius: 2px;
  font-size: 0.6875rem;
  line-height: normal;
  font-weight: 500;
  letter-spacing: 0.025rem;
  color: #fff;
  background-color: #dce0e5;
}
.badge--shopping-list, .badge--multi-cart {
  display: inline-block;
  color: #666666;
  padding: 0.25rem 0.3125rem;
  margin-right: 0.5625rem;
  vertical-align: middle;
  min-width: 3.25rem;
}
@media only screen and (min-width: 768px) {
  .badge--shopping-list, .badge--multi-cart {
    padding-left: 0.5625rem;
    padding-right: 0.5625rem;
    min-width: 4rem;
  }
}
.badge--title {
  background-color: #8f8f8f;
  text-transform: uppercase;
}
.badge--access {
  color: #fff;
  background-color: #E30613;
  text-transform: uppercase;
}
.badge--summary {
  text-transform: uppercase;
  letter-spacing: 0.0125rem;
  padding: 0.3125rem 0.5rem;
}
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/atoms/box/box.scss ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.box {
  background-color: #f0f0f0;
  border: 0 none;
  padding: 1.6875rem 1.25rem 1.875rem;
  margin: 0;
}
@media only screen and (min-width: 768px) {
  .box {
    padding: 2rem;
  }
}
.box--small {
  padding: 1rem 2rem;
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/atoms/button/button.scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.button {
  -webkit-transition: color 250ms ease-in-out, border-color 250ms ease-in-out, background-color 250ms ease-in-out;
  transition: color 250ms ease-in-out, border-color 250ms ease-in-out, background-color 250ms ease-in-out;
  background-color: #E30613;
  border: solid 1px #E30613;
  border-radius: 2px;
  color: #fff;
  font-size: 1.0625rem;
  line-height: 1.25rem;
  display: inline-block;
  padding: 0.4375rem 1.25rem;
  text-align: center;
  cursor: pointer;
}
@media only screen and (max-width: 769px) {
  .button {
    font-size: 1rem;
    line-height: 1.125rem;
  }
}
.button:hover, .button:focus {
  background-color: #b1050f;
  border-color: #b1050f;
  color: #fff;
  text-decoration: none;
}
.button--hollow {
  background-color: rgba(255, 255, 255, 0);
  border: 1px solid #E30613;
  color: #E30613;
}
.button--hollow:hover, .button--hollow:focus {
  border-color: #E30613;
  color: #fff;
  background-color: #E30613;
}
.button--hollow-icon {
  -webkit-transition: color 250ms ease-in-out;
  transition: color 250ms ease-in-out;
  padding: 0.25rem 0.5rem;
  background-color: rgba(255, 255, 255, 0);
  border: none;
  color: #E30613;
}
.button--hollow-icon:hover, .button--hollow-icon:focus {
  background-color: rgba(255, 255, 255, 0);
  color: #fc9fa5;
}
.button--hollow-second {
  color: #fff;
  border-color: #fff;
}
.button--hollow-second:hover, .button--hollow-second:focus {
  color: #e6e6e6;
  background-color: rgba(255, 255, 255, 0);
  border-color: #e6e6e6;
}
.button--hollow-alternative {
  color: #8f8f8f;
  border-color: #666666;
}
.button--hollow-alternative:hover, .button--hollow-alternative:focus {
  border-color: #8f8f8f;
  color: #fff;
  background-color: #8f8f8f;
}
.button--alternative {
  background-color: #E30613;
  border-color: #E30613;
  color: #fff;
}
.button--alternative:hover, .button--alternative:focus {
  background-color: #b1050f;
  border-color: #b1050f;
}
.button--additional {
  color: #fff;
  background-color: #999999;
  border-color: #999999;
}
.button--additional:hover, .button--additional:focus {
  background-color: #767676;
  border-color: #767676;
}
.button--medium {
  font-size: 0.875rem;
  line-height: normal;
  padding: 0.625rem 1.875rem;
}
@media only screen and (min-width: 768px) {
  .button--medium {
    font-size: 1rem;
    line-height: 1.25rem;
    padding: 0.9375rem 1.6875rem;
  }
}
.button--big {
  font-size: 1rem;
  line-height: 1.25rem;
  padding: 0.9375rem 1.6875rem;
}
@media only screen and (min-width: 768px) {
  .button--big {
    padding-left: 1.6875rem;
    padding-right: 1.6875rem;
  }
}
.button--bigger {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}
.button--form {
  padding-top: 0.875rem;
  padding-bottom: 0.875rem;
}
.button--tight {
  padding-left: 1.25rem;
  padding-right: 1.25rem;
}
.button--mobile-tight {
  padding-left: 0.9375rem;
  padding-right: 0.9375rem;
}
@media only screen and (min-width: 768px) {
  .button--mobile-tight {
    padding-left: 1.875rem;
    padding-right: 1.875rem;
  }
}
.button--expand {
  width: 100%;
}
@media only screen and (max-width: 549px) {
  .button--expand-sm-only {
    width: 100%;
  }
}
@media only screen and (max-width: 767px) {
  .button--expand-sm-lg {
    width: 100%;
  }
}
@media only screen and (min-width: 550px) {
  .button--checkout {
    min-width: 12.5rem;
  }
}
.button--edit, .button--back {
  -webkit-transition: color 250ms ease-in-out;
  transition: color 250ms ease-in-out;
  color: #666666;
}
.button--edit:hover, .button--edit:focus, .button--back:hover, .button--back:focus {
  color: #666666;
}
.button--back {
  font-weight: 400;
}
.button--main {
  background-color: #E30613;
  border-color: #E30613;
}
.button--main:hover, .button--main:focus {
  background-color: #f9232f;
  border-color: #f9232f;
}
.button--has-icon {
  color: white;
  font-family: "Font Awesome 5 Pro";
}
.button--search {
  width: 2.1875rem;
  height: 2.1875rem;
  padding: 0;
  font-weight: 400;
}
.button--search:before {
  content: "\f002";
}
.button--add-to-cart:before {
  content: "\f07a";
  margin-right: 0.875rem;
}
.button--gray {
  background-color: #666666;
  border-color: #666666;
  font-size: 1rem;
}
.button--gray:hover, .button--gray:focus {
  background-color: gray;
  border-color: gray;
}
.button--link {
  color: #0a0a0a;
  font-weight: 400;
  text-decoration: underline;
  background-color: rgba(0, 0, 0, 0);
  border-color: white;
  padding: 0;
}
.button--link:hover {
  color: #0a0a0a;
  background-color: rgba(0, 0, 0, 0);
  text-decoration: underline;
  border-color: white;
}
.button--link-icon {
  padding: 0.375rem 0.4375rem;
  font-size: 1rem;
}
.button--link-icon:after {
  content: "\f08e";
  font-size: 0.625rem;
  margin-left: 0.4375rem;
  position: relative;
  top: -0.0625rem;
}
@media only screen and (max-width: 769px) {
  .button--link-icon {
    font-size: 1.125rem;
    line-height: 1.3125rem;
  }
}
.button--square, .button--pagination {
  width: 2.125rem;
  height: 2.125rem;
  border: 1px solid #666666;
  padding: 0;
  background: white;
}
.button--square:hover, .button--square:focus, .button--pagination:hover, .button--pagination:focus {
  background-color: #F8F8F8;
  border-color: #666666;
}
.button--square:before, .button--pagination:before {
  color: #666666;
  font-size: 0.9375rem;
}
.button--pagination {
  color: #666666;
  font-size: 0.9375rem;
}
.button--pagination:hover, .button--pagination:focus {
  color: #666666;
  background-color: #F8F8F8;
  border-color: #666666;
}
.button--arrow {
  width: 2.125rem;
  height: 2.125rem;
  border: 1px solid transparent;
  font-size: 1.75rem;
  color: #666666;
  background: transparent;
  padding: 0 0.4375rem;
}
.button--arrow:before {
  content: "\f054";
}
.button--arrow.is-disabled {
  color: #E7E7E7;
  pointer-events: none;
}
.button--arrow:hover, .button--arrow:focus {
  color: #4d4d4d;
  background-color: transparent;
  border-color: transparent;
}
.button--rotate {
  -webkit-transform: rotate(-180deg);
          transform: rotate(-180deg);
}
.button--grid:before {
  content: "\f00a";
}
.button--list:before {
  content: "\f03a";
}
.button--info {
  color: white;
  font-size: 0.9375rem;
  background-color: #999999;
  border-color: #999999;
}
.button--info:hover, .button--info:focus {
  background-color: gray;
  border-color: gray;
}
@media only screen and (max-width: 769px) {
  .button--info {
    font-size: 1.125rem;
    line-height: 1.3125rem;
  }
}
.button--clipboard:before {
  content: "\f46d";
  font-size: 0.9375rem;
  margin-right: 0.625rem;
}
.button--no-padding {
  padding: 0;
}
.button--transparent {
  background-color: transparent;
}
.button--filter:after {
  content: "\f1de";
  margin-left: 0.375rem;
}
.button--open {
  width: 1rem;
  height: 1rem;
  border: 1px solid #666666;
  color: #666666;
  font-size: 1rem;
}
.button--open:hover, .button--open:focus {
  background-color: #F8F8F8;
  border-color: #666666;
}
.button--open:before {
  color: #666666;
  font-size: 0.75rem;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  vertical-align: middle;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  height: 0.75rem;
}
.button--open:before {
  content: "\f078";
}
.button--open.is-active:before {
  content: "\f077";
}
.button--wider {
  min-width: 10rem;
}
.button--second {
  -webkit-transition: border-color 250ms ease-in-out, color 250ms ease-in-out;
  transition: border-color 250ms ease-in-out, color 250ms ease-in-out;
  color: #8f8f8f;
  border-color: #666666;
}
.button--second:hover, .button--second:focus {
  background-color: rgba(255, 255, 255, 0);
  border-color: #E30613;
  color: #E30613;
}
.button[disabled], .button--disabled {
  background-color: #999999;
  border-color: #999999;
  color: #fff;
  cursor: not-allowed;
}
.button[disabled]:hover, .button[disabled]:focus, .button--disabled:hover, .button--disabled:focus {
  background-color: #999999;
  border-color: #999999;
}
.button--disabled {
  pointer-events: none;
}
.button--justify {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 100%;
}
.button--additional {
  padding: 0.875rem 1.25rem;
  background: #fff;
  border-color: #e7eaee;
  color: #666666;
  -webkit-box-shadow: 0 0.625rem 1.125rem 0 rgba(0, 0, 0, 0.05), 0 0.1875rem 0.1875rem 0 rgba(0, 0, 0, 0.04);
          box-shadow: 0 0.625rem 1.125rem 0 rgba(0, 0, 0, 0.05), 0 0.1875rem 0.1875rem 0 rgba(0, 0, 0, 0.04);
  font-size: 0.9375rem;
}
.button--tab-gray {
  font-size: 0.9375rem;
  color: #666666;
  background-color: unset;
  border: none;
  border-color: #E7E7E7;
}
.button--tab-gray:hover, .button--tab-gray:focus {
  color: #666666;
  background-color: #dce0e5;
  border-color: transparent;
}
.button--shopping-list {
  position: absolute;
  bottom: 1.375rem;
  left: 1.375rem;
  width: calc(100% - 2.75rem);
}
@media only screen and (min-width: 768px) {
  .button--shopping-list {
    position: static;
    width: auto;
  }
}
.button--no-horizontal-padding {
  padding-left: 0;
  padding-right: 0;
}
.button--tab {
  font-size: 0.8125rem;
  padding: 0.1875rem 0.3125rem;
  line-height: 1.25rem;
  border-radius: 6px 6px 0 0;
  border-bottom: 0;
}
.button--black-border {
  background-color: #fefefe;
  border-color: #666666;
  color: #666666;
}
.button--black-border:hover, .button--black-border:focus, .button--black-border:active {
  background-color: #eae8e8;
  color: #666666;
}
.button--black-border .spinner {
  color: #E30613;
}
.button--success {
  background-color: #E30613;
  border-color: #E30613;
}
.button--success:hover, .button--success:focus {
  background-color: #b1050f;
  border-color: #b1050f;
}
.button--success.button--hollow {
  background-color: #fff;
  border-color: #E30613;
  color: #E30613;
}
.button--success.button--hollow:hover, .button--success.button--hollow:focus {
  background-color: #E30613;
  color: #fff;
}
.button--warning {
  background-color: #fdbe36;
  border-color: #fdbe36;
}
.button--warning:hover, .button--warning:focus {
  background-color: #fcae04;
  border-color: #fcae04;
}
.button--warning.button--hollow {
  background-color: #fff;
  border-color: #E30613;
  color: #E30613;
}
.button--warning.button--hollow:hover, .button--warning.button--hollow:focus {
  background-color: #E30613;
  color: #fff;
}
.button--alert {
  background-color: #E30613;
  border-color: #E30613;
}
.button--alert:hover, .button--alert:focus {
  background-color: #b1050f;
  border-color: #b1050f;
}
.button--alert.button--hollow {
  background-color: #fff;
  border-color: #E30613;
  color: #E30613;
}
.button--alert.button--hollow:hover, .button--alert.button--hollow:focus {
  background-color: #E30613;
  color: #fff;
}
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/atoms/checkbox/checkbox.scss ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.checkbox {
  display: inline-block;
}
.checkbox__container {
  cursor: pointer;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row nowrap;
          flex-flow: row nowrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.checkbox__box {
  -webkit-transition: background-color 250ms ease-in-out, border-color 250ms ease-in-out;
  transition: background-color 250ms ease-in-out, border-color 250ms ease-in-out;
  display: block;
  width: 1.625rem;
  height: 1.625rem;
  line-height: 1.625rem;
  border: 0.0625rem solid #dce0e5;
  background-color: #fff;
  margin-right: 0.625rem;
  text-align: center;
  border-radius: 2px;
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
}
@media only screen and (min-width: 768px) {
  .checkbox__box {
    margin-right: 0.875rem;
    width: 1.25rem;
    height: 1.25rem;
    line-height: 1.25rem;
  }
}
.checkbox__box--filter {
  width: 1.5rem;
  height: 1.5rem;
  line-height: 1.5rem;
}
@media only screen and (min-width: 768px) {
  .checkbox__box--filter {
    width: 1.125rem;
    height: 1.125rem;
    line-height: 1.125rem;
  }
}
.checkbox__box--shopping-list {
  position: absolute;
  top: 0.75rem;
  right: 0.9375rem;
  margin-right: 0;
  z-index: 1;
}
@media only screen and (min-width: 768px) {
  .checkbox__box--shopping-list {
    position: static;
    margin-right: 0.625rem;
  }
}
.checkbox__box--alternative {
  border: solid 0.125rem #666666;
}
.checkbox__box--borderless {
  border: none;
}
.checkbox__box--smart-project {
  margin-right: 0.5rem;
}
.checkbox__input {
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
  position: absolute;
}
.checkbox__input:checked ~ .checkbox__box {
  background-color: #E30613;
  border-color: #E30613;
}
.checkbox__input:checked ~ .checkbox__box .checkbox__check {
  pointer-events: all;
  visibility: visible;
  opacity: 1;
}
.checkbox__input:checked ~ .checkbox__box--smart-project {
  background-color: #6CA52F;
  border-color: #6CA52F;
}
.checkbox__input:checked ~ .checkbox__box--alternative {
  background-color: #fff;
  border-color: #666666;
}
.checkbox__input:checked ~ .checkbox__label {
  font-weight: 500;
}
.checkbox__input:checked ~ .checkbox__label--alternative {
  font-weight: 400;
}
.checkbox__input[disabled] ~ .checkbox__box, .checkbox__input[disabled] ~ .checkbox__box:hover, .checkbox__input--disabled ~ .checkbox__box, .checkbox__input--disabled ~ .checkbox__box:hover {
  background-color: #fff;
  border-color: #dce0e5;
  cursor: not-allowed;
}
.checkbox__input[disabled]:checked ~ .checkbox__box, .checkbox__input--disabled:checked ~ .checkbox__box {
  background-color: #dce0e5;
}
.checkbox__input[disabled] ~ .checkbox__label, .checkbox__input--disabled ~ .checkbox__label {
  color: #666666;
  cursor: not-allowed;
}
.checkbox__check {
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
  -webkit-transition: visibility 250ms ease-in-out, opacity 250ms ease-in-out;
  transition: visibility 250ms ease-in-out, opacity 250ms ease-in-out;
  color: #fff;
  vertical-align: baseline;
}
.checkbox__check--alternative {
  color: #666666;
  margin-bottom: 0.125rem;
}
.checkbox__label {
  display: inline-block;
  vertical-align: middle;
  text-transform: none;
  font-size: 0.875rem;
  font-weight: 400;
  margin: 0;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}
.checkbox__label--filter {
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  font-size: 0.875rem;
  font-weight: 400;
  text-transform: none;
  margin-bottom: 0;
}
.checkbox__label--alternative {
  margin-bottom: 0;
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1.25rem;
  color: #666666;
  text-transform: none;
}
.checkbox__label--smart-project {
  font-size: 1rem;
  color: #6CA52F;
}
.checkbox__counter {
  padding-left: 0.5rem;
}
.checkbox--expand {
  display: block;
}
.checkbox--filter {
  width: 100%;
  font-size: 0.9375rem;
  line-height: 1.125rem;
}
@media only screen and (min-width: 768px) {
  .checkbox--filter {
    font-size: 0.875rem;
  }
}
.checkbox--alternative {
  margin-bottom: 0.9375rem;
}
.checkbox--alternative:hover .checkbox__box--alternative {
  border-color: #666666;
}
@media only screen and (min-width: 768px) {
  .checkbox--pdp {
    margin-left: 8.25rem;
  }
}
.checkbox--pdp:hover .checkbox__box--alternative {
  border-color: #666666;
}
.checkbox--error .checkbox__box {
  border-color: #E30613;
}
.checkbox:hover .checkbox__box {
  border-color: #E30613;
}
.checkbox:hover .checkbox__box--smart-project {
  border-color: #6CA52F;
}
.checkbox:hover .checkbox__input[disabled] ~ .checkbox__box,
.checkbox:hover .checkbox__input--disabled ~ .checkbox__box {
  border-color: #dce0e5;
}
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/atoms/icon/icon.scss ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.icon {
  fill: currentColor;
  width: 1rem;
  height: 1rem;
  display: inline-block;
  vertical-align: middle;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}
.icon--small {
  width: 0.75rem;
  height: 0.75rem;
}
.icon--smaller {
  width: 0.5rem;
  height: 0.5rem;
}
.icon--big {
  width: 1.25rem;
  height: 1.25rem;
}
.icon--bigger {
  width: 1.5rem;
  height: 1.5rem;
}
.icon--biggest {
  width: 3rem;
  height: 3rem;
}
.icon--logo {
  width: 6rem;
  height: 2rem;
  max-width: 100%;
}
@media only screen and (min-width: 768px) {
  .icon--logo {
    width: 10.9375rem;
    height: 4.375rem;
  }
}
@media only screen and (min-width: 1024px) {
  .icon--logo {
    width: 12.1875rem;
  }
}
.icon--checkout {
  width: 6.8125rem;
  height: 2rem;
}
@media only screen and (min-width: 768px) {
  .icon--checkout {
    width: 10.4375rem;
    height: 3.75rem;
  }
}
.icon--header-check {
  width: 0.75rem;
  height: 0.5625rem;
  margin: -0.125rem 0.5625rem 0 0;
}
.icon--progress-check {
  width: 0.4375rem;
  height: 0.3125rem;
}
@media only screen and (min-width: 550px) {
  .icon--progress-check {
    width: 0.625rem;
    height: 0.5rem;
  }
}
.icon--phone {
  width: 0.9375rem;
  height: 0.9375rem;
  margin-right: 0.375rem;
}
.icon--search {
  width: 1rem;
  height: 1rem;
  stroke-width: 0.03125rem;
}
.icon--search-result {
  fill: #666666;
  margin-right: 0.25rem;
}
.icon--search-result__tag {
  margin-right: 0.25rem;
}
.icon--user {
  width: 1.125rem;
  height: 1.3125rem;
  margin-top: 0.4375rem;
}
.icon--quick-order {
  width: 1.3125rem;
  height: 0.9375rem;
}
@media only screen and (min-width: 768px) {
  .icon--quick-order {
    width: 2rem;
    height: 1.1875rem;
    margin-top: 0.1875rem;
  }
}
.icon--quick-order-delete-row {
  width: 0.875rem;
  height: 0.9375rem;
  fill: #666666;
}
.icon--header-shopping-list {
  width: 0.8125rem;
  height: 0.75rem;
}
@media only screen and (min-width: 768px) {
  .icon--header-shopping-list {
    width: 1.0625rem;
    height: 1rem;
    margin-top: 0.625rem;
  }
}
.icon--cart {
  width: 1.25rem;
  height: 1.0625rem;
}
.icon--contact {
  width: 1.375rem;
  height: 1.5rem;
  margin-bottom: 0.5rem;
}
@media only screen and (min-width: 768px) {
  .icon--contact {
    display: none;
  }
}
.icon--cross {
  width: 0.625rem;
  height: 0.625rem;
}
.icon--reverse {
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg);
}
.icon--toggler-cross {
  position: relative;
  width: 0.625rem;
  height: 0.625rem;
}
.icon--toggler-cross::before, .icon--toggler-cross::after {
  content: "";
  position: absolute;
  background-color: #666666;
}
.icon--toggler-cross::before {
  height: 0.125rem;
  width: 100%;
  top: 50%;
  left: 0;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
@media only screen and (min-width: 768px) {
  .icon--toggler-cross::before {
    height: 0.1875rem;
  }
}
.icon--toggler-cross::after {
  height: 100%;
  width: 0.125rem;
  top: 0;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}
@media only screen and (min-width: 768px) {
  .icon--toggler-cross::after {
    width: 0.1875rem;
  }
}
.active .icon--toggler-cross::after {
  display: none;
}
.icon--toggler-cross-thin::before {
  height: 0.125rem;
}
.icon--toggler-cross-thin::after {
  width: 0.125rem;
}
.icon--cart-plus {
  display: inline-block;
  width: 1.625rem;
  height: 1.4375rem;
  margin: -0.375rem 0.75rem -0.125rem 0;
}
.icon--toggler-cross-link::before, .icon--toggler-cross-link::after {
  background-color: #8f8f8f;
}
.icon--link {
  -webkit-transition: color 250ms ease-in-out;
  transition: color 250ms ease-in-out;
  color: #666666;
  margin-right: 0.375rem;
}
.icon--shipment {
  width: 5.1875rem;
}
.icon--tof-logo, .icon--tof-exp-logo {
  width: 6rem;
  margin-top: -0.125rem;
}
.icon--ups-logo, .icon--upsam-logo {
  width: 2rem;
  height: 2rem;
}
.icon--dhl-logo {
  width: 4.5625rem;
}
.icon--fedex-logo {
  width: 3.25rem;
  margin-top: -0.125rem;
}
.icon--invoice-logo {
  width: 3.25rem;
  height: 1.25rem;
}
@media only screen and (min-width: 768px) {
  .icon--invoice-logo {
    width: 5.1875rem;
    height: 1.75rem;
  }
}
.icon--invoice-logo-small {
  width: 3.4375rem;
  height: 1.375rem;
}
.icon--payment-logo {
  position: absolute;
  top: 1.6875rem;
  right: 1.25rem;
}
@media only screen and (min-width: 768px) {
  .icon--payment-logo {
    top: 1.6875rem;
    right: 1.875rem;
  }
}
.icon--summary-shipping {
  width: 3.3125rem;
}
.icon--overview {
  width: 1.0625rem;
  height: 1rem;
}
.icon--users {
  width: 1.8125rem;
  height: 1.1875rem;
}
.icon--business-unit {
  width: 1.375rem;
  height: 1.375rem;
}
.icon--role {
  height: 0.875rem;
}
.icon--plus-small {
  width: 0.625rem;
  height: 0.625rem;
  position: relative;
  top: -0.0625rem;
}
.icon--share {
  width: 1.25rem;
}
.icon--add-to-list {
  position: relative;
  top: 0.0625rem;
  width: 1.625rem;
  height: 1.625rem;
}
.icon--success {
  width: 7.5rem;
  height: 7.5rem;
  margin-bottom: -1.375rem;
}
.icon--footer {
  height: 1.75rem;
  width: 5.8125rem;
}
.icon--invoice-logo-footer {
  width: 4.5625rem;
}
.icon--pay-pal-logo-footer {
  width: 4rem;
}
.icon--klarna-logo-footer {
  width: 4.25rem;
}
.icon--dhl-logo-footer {
  width: 4.75rem;
}
.icon--copyright {
  width: 6.625rem;
  height: 3rem;
}
.icon--reset {
  -webkit-transition: color 250ms ease-in-out;
  transition: color 250ms ease-in-out;
  margin-right: 0.5rem;
  color: #666666;
}
.icon--chevron {
  width: 0.625rem;
  height: 0.625rem;
}
.icon--create-list {
  vertical-align: bottom;
  height: 1.125rem;
  width: 1.125rem;
}
.icon--create-new-cart {
  width: 1.5rem;
  height: 1.125rem;
  vertical-align: bottom;
}
.icon--trolley {
  width: 1.25rem;
}
.icon--title {
  width: 2.1875rem;
  height: 1.625rem;
}
.icon--sm-lg-regular {
  width: 1rem;
  height: 1rem;
}
@media only screen and (min-width: 768px) {
  .icon--sm-lg-regular {
    width: 1.25rem;
    height: 1.25rem;
  }
}
.icon--sm-lg-bigger {
  width: 1rem;
  height: 1rem;
}
@media only screen and (min-width: 768px) {
  .icon--sm-lg-bigger {
    width: 1.5rem;
    height: 1.5rem;
  }
}
.icon--browse-file {
  width: 1.75rem;
  height: 1.75rem;
}
.icon--download-file {
  position: absolute;
  left: 0;
  top: 0;
  width: 1.875rem;
  height: 1.875rem;
}
.icon--remove-file {
  -webkit-transition: color 250ms ease-in-out;
  transition: color 250ms ease-in-out;
  margin: -0.125rem 0 0 0.3125rem;
  cursor: pointer;
}
.icon--remove-file:hover {
  color: #666666;
}
.icon--clock {
  width: 0.75rem;
  height: 0.75rem;
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/atoms/input/input.scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.input {
  -webkit-transition: border-color 250ms ease-in-out;
  transition: border-color 250ms ease-in-out;
  display: inline-block;
  padding: 0.25rem 0.5rem;
  border: 1px solid #dce0e5;
}
.input:focus {
  border-color: #8f8f8f;
}
.input::-webkit-input-placeholder {
  color: #8f8f8f;
}
.input::-moz-placeholder {
  color: #8f8f8f;
}
.input:-ms-input-placeholder {
  color: #8f8f8f;
}
.input::-ms-input-placeholder {
  color: #8f8f8f;
}
.input::placeholder {
  color: #8f8f8f;
}
.input--expand {
  display: block;
  width: 100%;
}
.input--naked {
  background-color: rgba(255, 255, 255, 0);
  border: none;
}
.input--error {
  border-color: #E30613;
}
.input[disabled], .input--disabled {
  background-color: #f4f4f4;
  cursor: not-allowed;
}
.input {
  border: 0.0625rem solid #B3B3B3;
  border-radius: 2px;
  color: #666666;
  font: 400 0.9375rem/1.1875rem "FrutigerNextPro";
  padding: 0.875rem 1.25rem 0.8125rem;
}
.input[type=number]::-webkit-inner-spin-button, .input[type=number]::-webkit-outer-spin-button {
  -webkit-appearance: none;
}
.input[type=number] {
  -moz-appearance: textfield;
}
.input--small {
  font-size: 0.875rem;
  line-height: 1.125rem;
  padding: 0.625rem 1rem;
}
.input--measurement-unit {
  max-width: 90px;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}
.input--measurement-unit::-webkit-inner-spin-button, .input--measurement-unit::-webkit-outer-spin-button {
  -webkit-appearance: none;
          appearance: none;
  margin: 0;
}
.input--filter-range {
  font-weight: 500;
  color: #666666;
  padding-right: 2.5rem;
  padding-left: 0.5rem;
}
@media only screen and (min-width: 550px) {
  .input--filter-range {
    padding-left: 1rem;
  }
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/atoms/label/label.scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.label {
  display: block;
  font-size: 0.75rem;
  font-weight: 500;
  margin-bottom: 0.4rem;
  color: #666666;
}
.label--required::after {
  content: "*";
  margin-left: 0.2rem;
  color: #E30613;
}
.label--title::after {
  display: none;
}
.label--browse-file {
  -webkit-transition: border-color 250ms ease-in-out;
  transition: border-color 250ms ease-in-out;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 100%;
  min-height: 7.5rem;
  padding: 0.625rem;
  border: 0.125rem dashed #666666;
  border-radius: 0.125rem;
  background-color: #fff;
  color: #8f8f8f;
  text-transform: initial;
  font-weight: 400;
  cursor: pointer;
}
.label--browse-file:hover {
  border-color: #E30613;
}
.label--browse-file-cursor-default {
  cursor: default;
}
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/atoms/link/link.scss ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.link {
  display: inline-block;
  padding: 0;
  margin: 0;
  background-color: transparent;
  color: #E30613;
  cursor: pointer;
}
.link:hover {
  text-decoration: underline;
}
.link--success {
  color: #1ebea0;
}
.link--warning {
  color: #fdbe36;
}
.link--alert {
  color: #E30613;
}
.link--small {
  font-size: 0.875rem;
}
.link--alt {
  -webkit-transition: color 250ms ease-in-out;
  transition: color 250ms ease-in-out;
}
.link--alt:hover {
  text-decoration: none;
  color: #b1050f;
}
.link--expand {
  display: block;
}
.link[disabled], .link--disabled {
  color: #8f8f8f;
  cursor: not-allowed;
}
.link[disabled]:hover, .link--disabled:hover {
  color: #8f8f8f;
  text-decoration: none;
}
.link--icon {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  color: #8f8f8f;
  font-size: 0.8125rem;
  font-weight: 500;
  line-height: 1rem;
}
@media only screen and (min-width: 1024px) {
  .link--icon {
    -webkit-transition: color 250ms ease-in-out;
    transition: color 250ms ease-in-out;
  }
}
.link--icon:hover, .link--icon:focus {
  text-decoration: none;
  color: #666666;
}
.link--icon:hover .icon, .link--icon:focus .icon {
  color: #666666;
}
.link--footer {
  color: #666666;
}
.link--footer:hover, .link--footer:focus {
  color: #E30613;
}
.link--checkout {
  font-size: 0.8125rem;
  line-height: normal;
}
.link--social {
  color: #8f8f8f;
}
.link--social:hover, .link--social:focus {
  color: #666666;
}
.link--privacy {
  color: #fff;
}
.link--privacy:hover, .link--privacy:focus {
  color: #E30613;
}
.link--action {
  color: #666666;
}
.link--action:hover, .link--action:focus {
  color: #666666;
}
.link--error-block {
  text-decoration: underline;
  font: 400 0.9375rem/1.875rem "FrutigerNextPro";
  color: #666666;
}
.link--company-user {
  color: #8f8f8f;
  white-space: nowrap;
}
@media only screen and (min-width: 1024px) {
  .link--company-user {
    -webkit-transition: color 250ms ease-in-out;
    transition: color 250ms ease-in-out;
  }
}
.link--company-user:focus, .link--company-user:hover {
  text-decoration: none;
  color: #666666;
}
.link--secondary {
  color: #8f8f8f;
}
@media only screen and (min-width: 1024px) {
  .link--secondary {
    -webkit-transition: color 250ms ease-in-out;
    transition: color 250ms ease-in-out;
  }
}
.link--secondary:hover {
  text-decoration: none;
  color: #666666;
}
.link--alternative {
  color: #000;
}
@media only screen and (min-width: 1024px) {
  .link--alternative {
    -webkit-transition: color 250ms ease-in-out;
    transition: color 250ms ease-in-out;
  }
}
.link--alternative:focus, .link--alternative:hover {
  text-decoration: none;
  color: #8f8f8f;
}
.link--additional {
  color: #E30613;
}
@media only screen and (min-width: 1024px) {
  .link--additional {
    -webkit-transition: color 250ms ease-in-out;
    transition: color 250ms ease-in-out;
  }
}
.link--additional:focus, .link--additional:hover {
  text-decoration: none;
  color: #666666;
}
.link--to-button {
  width: 100%;
  padding: 0.6875rem;
  font-size: 0.875rem;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  border-radius: 2px;
  border: 0.0625rem solid #dce0e5;
}
@media only screen and (min-width: 768px) {
  .link--to-button {
    width: auto;
    border: 0;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    padding: 0;
    font-size: 0.8125rem;
  }
}
.link--user-account {
  color: #8f8f8f;
  -webkit-transition: color 250ms ease-in-out;
  transition: color 250ms ease-in-out;
}
.link--user-account:hover {
  text-decoration: none;
  color: #666666;
}
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/atoms/list/list.scss ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@charset "UTF-8";
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.list__item {
  display: block;
}
.list__item > .list {
  margin-left: 0.5rem;
}
.list--inline {
  display: inline-block;
}
.list--inline > .list__item {
  display: inline-block;
  margin: 0 0.5rem;
}
.list--inline > .list__item:first-child {
  margin-left: 0;
}
.list--inline > .list__item:last-child {
  margin-right: 0;
}
.list--bullet .list__item::before {
  content: "•";
  margin-right: 0.25rem;
}
.list--plus .list__item::before {
  content: "+";
  margin-right: 0.25rem;
}
.list--alert {
  color: #E30613;
}
.list--footer {
  padding: 0 0.625rem;
  margin-bottom: 1.625rem;
}
@media only screen and (min-width: 550px) {
  .list--footer {
    padding: 0;
    margin-bottom: 0;
  }
}
.list--checkout {
  margin-bottom: 0;
}
.list--checkout > .list__item {
  margin-left: 1.1875rem;
  margin-right: 1.1875rem;
}
@media only screen and (min-width: 550px) {
  .list--checkout > .list__item {
    margin-left: 0.625rem;
    margin-right: 0.625rem;
  }
}
.list--checkbox {
  margin: 0.5rem 0;
}
.list__item {
  font-size: 0.9375rem;
  line-height: 1.3125rem;
  letter-spacing: 0.0125rem;
}
.list__item--inline {
  display: inline-block;
}
.list__item--checkbox {
  margin-bottom: 0.5rem;
}
.list--company-user {
  position: absolute;
  top: 100%;
  left: 0;
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1.93;
  letter-spacing: 0.0125rem;
  border-radius: 0 0 2px 2px;
  background-color: #fff;
  -webkit-box-shadow: 0 18px 18px 0 rgba(0, 0, 0, 0.05), 0 3px 3px 0 rgba(0, 0, 0, 0.05);
          box-shadow: 0 18px 18px 0 rgba(0, 0, 0, 0.05), 0 3px 3px 0 rgba(0, 0, 0, 0.05);
  padding: 1.3125rem 2.375rem 1.3125rem 1.8125rem;
  -webkit-transform-origin: top left;
          transform-origin: top left;
  -webkit-transform: scale(0);
          transform: scale(0);
  z-index: 10;
  -webkit-transition: -webkit-transform 250ms ease-in-out;
  transition: -webkit-transform 250ms ease-in-out;
  transition: transform 250ms ease-in-out;
  transition: transform 250ms ease-in-out, -webkit-transform 250ms ease-in-out;
}
@media only screen and (min-width: 1300px) {
  .list--company-user {
    -webkit-transform-origin: top left;
            transform-origin: top left;
    left: 0;
    right: auto;
  }
}
.list--alert a {
  text-decoration: underline;
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/atoms/radio/radio.scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.checkbox {
  display: inline-block;
}
.checkbox__container {
  cursor: pointer;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row nowrap;
          flex-flow: row nowrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.checkbox__box {
  -webkit-transition: background-color 250ms ease-in-out, border-color 250ms ease-in-out;
  transition: background-color 250ms ease-in-out, border-color 250ms ease-in-out;
  display: block;
  width: 1.625rem;
  height: 1.625rem;
  line-height: 1.625rem;
  border: 0.0625rem solid #dce0e5;
  background-color: #fff;
  margin-right: 0.625rem;
  text-align: center;
  border-radius: 2px;
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
}
@media only screen and (min-width: 768px) {
  .checkbox__box {
    margin-right: 0.875rem;
    width: 1.25rem;
    height: 1.25rem;
    line-height: 1.25rem;
  }
}
.checkbox__box--filter {
  width: 1.5rem;
  height: 1.5rem;
  line-height: 1.5rem;
}
@media only screen and (min-width: 768px) {
  .checkbox__box--filter {
    width: 1.125rem;
    height: 1.125rem;
    line-height: 1.125rem;
  }
}
.checkbox__box--shopping-list {
  position: absolute;
  top: 0.75rem;
  right: 0.9375rem;
  margin-right: 0;
  z-index: 1;
}
@media only screen and (min-width: 768px) {
  .checkbox__box--shopping-list {
    position: static;
    margin-right: 0.625rem;
  }
}
.checkbox__box--alternative {
  border: solid 0.125rem #666666;
}
.checkbox__box--borderless {
  border: none;
}
.checkbox__box--smart-project {
  margin-right: 0.5rem;
}
.checkbox__input {
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
  position: absolute;
}
.checkbox__input:checked ~ .checkbox__box {
  background-color: #E30613;
  border-color: #E30613;
}
.checkbox__input:checked ~ .checkbox__box .checkbox__check {
  pointer-events: all;
  visibility: visible;
  opacity: 1;
}
.checkbox__input:checked ~ .checkbox__box--smart-project {
  background-color: #6CA52F;
  border-color: #6CA52F;
}
.checkbox__input:checked ~ .checkbox__box--alternative {
  background-color: #fff;
  border-color: #666666;
}
.checkbox__input:checked ~ .checkbox__label {
  font-weight: 500;
}
.checkbox__input:checked ~ .checkbox__label--alternative {
  font-weight: 400;
}
.checkbox__input[disabled] ~ .checkbox__box, .checkbox__input[disabled] ~ .checkbox__box:hover, .checkbox__input--disabled ~ .checkbox__box, .checkbox__input--disabled ~ .checkbox__box:hover {
  background-color: #fff;
  border-color: #dce0e5;
  cursor: not-allowed;
}
.checkbox__input[disabled]:checked ~ .checkbox__box, .checkbox__input--disabled:checked ~ .checkbox__box {
  background-color: #dce0e5;
}
.checkbox__input[disabled] ~ .checkbox__label, .checkbox__input--disabled ~ .checkbox__label {
  color: #666666;
  cursor: not-allowed;
}
.checkbox__check {
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
  -webkit-transition: visibility 250ms ease-in-out, opacity 250ms ease-in-out;
  transition: visibility 250ms ease-in-out, opacity 250ms ease-in-out;
  color: #fff;
  vertical-align: baseline;
}
.checkbox__check--alternative {
  color: #666666;
  margin-bottom: 0.125rem;
}
.checkbox__label {
  display: inline-block;
  vertical-align: middle;
  text-transform: none;
  font-size: 0.875rem;
  font-weight: 400;
  margin: 0;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}
.checkbox__label--filter {
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  font-size: 0.875rem;
  font-weight: 400;
  text-transform: none;
  margin-bottom: 0;
}
.checkbox__label--alternative {
  margin-bottom: 0;
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1.25rem;
  color: #666666;
  text-transform: none;
}
.checkbox__label--smart-project {
  font-size: 1rem;
  color: #6CA52F;
}
.checkbox__counter {
  padding-left: 0.5rem;
}
.checkbox--expand {
  display: block;
}
.checkbox--filter {
  width: 100%;
  font-size: 0.9375rem;
  line-height: 1.125rem;
}
@media only screen and (min-width: 768px) {
  .checkbox--filter {
    font-size: 0.875rem;
  }
}
.checkbox--alternative {
  margin-bottom: 0.9375rem;
}
.checkbox--alternative:hover .checkbox__box--alternative {
  border-color: #666666;
}
@media only screen and (min-width: 768px) {
  .checkbox--pdp {
    margin-left: 8.25rem;
  }
}
.checkbox--pdp:hover .checkbox__box--alternative {
  border-color: #666666;
}
.checkbox--error .checkbox__box {
  border-color: #E30613;
}
.checkbox:hover .checkbox__box {
  border-color: #E30613;
}
.checkbox:hover .checkbox__box--smart-project {
  border-color: #6CA52F;
}
.checkbox:hover .checkbox__input[disabled] ~ .checkbox__box,
.checkbox:hover .checkbox__input--disabled ~ .checkbox__box {
  border-color: #dce0e5;
}

.radio {
  display: inline-block;
}
.radio__container {
  cursor: pointer;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row nowrap;
          flex-flow: row nowrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.radio__box {
  -webkit-transition: background-color 250ms ease-in-out, border-color 250ms ease-in-out;
  transition: background-color 250ms ease-in-out, border-color 250ms ease-in-out;
  display: block;
  width: 1.625rem;
  height: 1.625rem;
  line-height: 1.625rem;
  border: 0.0625rem solid #dce0e5;
  background-color: #fff;
  margin-right: 0.625rem;
  text-align: center;
  border-radius: 2px;
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
}
@media only screen and (min-width: 768px) {
  .radio__box {
    margin-right: 0.875rem;
    width: 1.25rem;
    height: 1.25rem;
    line-height: 1.25rem;
  }
}
.radio__box--filter {
  width: 1.5rem;
  height: 1.5rem;
  line-height: 1.5rem;
}
@media only screen and (min-width: 768px) {
  .radio__box--filter {
    width: 1.125rem;
    height: 1.125rem;
    line-height: 1.125rem;
  }
}
.radio__box--shopping-list {
  position: absolute;
  top: 0.75rem;
  right: 0.9375rem;
  margin-right: 0;
  z-index: 1;
}
@media only screen and (min-width: 768px) {
  .radio__box--shopping-list {
    position: static;
    margin-right: 0.625rem;
  }
}
.radio__box--alternative {
  border: solid 0.125rem #666666;
}
.radio__box--borderless {
  border: none;
}
.radio__box--smart-project {
  margin-right: 0.5rem;
}
.radio__input {
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
  position: absolute;
}
.radio__input:checked ~ .radio__box {
  background-color: #E30613;
  border-color: #E30613;
}
.radio__input:checked ~ .radio__box .radio__check {
  pointer-events: all;
  visibility: visible;
  opacity: 1;
}
.radio__input:checked ~ .radio__box--smart-project {
  background-color: #6CA52F;
  border-color: #6CA52F;
}
.radio__input:checked ~ .radio__box--alternative {
  background-color: #fff;
  border-color: #666666;
}
.radio__input:checked ~ .radio__label {
  font-weight: 500;
}
.radio__input:checked ~ .radio__label--alternative {
  font-weight: 400;
}
.radio__input[disabled] ~ .radio__box, .radio__input[disabled] ~ .radio__box:hover, .radio__input--disabled ~ .radio__box, .radio__input--disabled ~ .radio__box:hover {
  background-color: #fff;
  border-color: #dce0e5;
  cursor: not-allowed;
}
.radio__input[disabled]:checked ~ .radio__box, .radio__input--disabled:checked ~ .radio__box {
  background-color: #dce0e5;
}
.radio__input[disabled] ~ .radio__label, .radio__input--disabled ~ .radio__label {
  color: #666666;
  cursor: not-allowed;
}
.radio__check {
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
  -webkit-transition: visibility 250ms ease-in-out, opacity 250ms ease-in-out;
  transition: visibility 250ms ease-in-out, opacity 250ms ease-in-out;
  color: #fff;
  vertical-align: baseline;
}
.radio__check--alternative {
  color: #666666;
  margin-bottom: 0.125rem;
}
.radio__label {
  display: inline-block;
  vertical-align: middle;
  text-transform: none;
  font-size: 0.875rem;
  font-weight: 400;
  margin: 0;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}
.radio__label--filter {
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  font-size: 0.875rem;
  font-weight: 400;
  text-transform: none;
  margin-bottom: 0;
}
.radio__label--alternative {
  margin-bottom: 0;
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1.25rem;
  color: #666666;
  text-transform: none;
}
.radio__label--smart-project {
  font-size: 1rem;
  color: #6CA52F;
}
.radio__counter {
  padding-left: 0.5rem;
}
.radio--expand {
  display: block;
}
.radio--filter {
  width: 100%;
  font-size: 0.9375rem;
  line-height: 1.125rem;
}
@media only screen and (min-width: 768px) {
  .radio--filter {
    font-size: 0.875rem;
  }
}
.radio--alternative {
  margin-bottom: 0.9375rem;
}
.radio--alternative:hover .radio__box--alternative {
  border-color: #666666;
}
@media only screen and (min-width: 768px) {
  .radio--pdp {
    margin-left: 8.25rem;
  }
}
.radio--pdp:hover .radio__box--alternative {
  border-color: #666666;
}
.radio--error .radio__box {
  border-color: #E30613;
}
.radio:hover .radio__box {
  border-color: #E30613;
}
.radio:hover .radio__box--smart-project {
  border-color: #6CA52F;
}
.radio:hover .radio__input[disabled] ~ .radio__box,
.radio:hover .radio__input--disabled ~ .radio__box {
  border-color: #dce0e5;
}
.radio--mobile-small .radio__box {
  width: 1.25rem;
  height: 1.25rem;
  line-height: 1.25rem;
}
.radio__box {
  -webkit-transition: border-color 250ms ease-in-out;
  transition: border-color 250ms ease-in-out;
  border-radius: 100%;
  border-width: 0.125rem;
}
.radio__check {
  display: none;
}
.radio__input:checked ~ .radio__box {
  background-color: #E30613;
  border-color: #E30613;
  -webkit-box-shadow: inset 0 0 0 0.1875rem #fff;
          box-shadow: inset 0 0 0 0.1875rem #fff;
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/atoms/select/select.scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.select {
  -webkit-transition: border-color 250ms ease-in-out;
  transition: border-color 250ms ease-in-out;
  display: inline-block;
  position: relative;
  max-width: 100%;
  background-color: #fff;
  border: 1px solid #dce0e5;
  border-radius: 0;
}
.select__select {
  display: block;
  max-width: 100%;
  padding-left: 0.25rem;
  background-color: rgba(255, 255, 255, 0);
  border: 0.25rem solid rgba(255, 255, 255, 0);
  border-right-width: 1.5rem;
  border-radius: 0;
  z-index: 2;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}
.select__select[disabled], .select__select--disabled {
  background-color: #f4f4f4;
  cursor: not-allowed;
}
.select__caret {
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0.25rem;
  margin: auto;
  color: #777777;
  z-index: 1;
  pointer-events: none;
}
.select--expand, .select--expand .select__select {
  display: block;
  width: 100%;
}
.select--naked {
  background-color: rgba(255, 255, 255, 0);
  border: none;
}
.select--error {
  border-color: #E30613;
}
.select--error .select__caret {
  color: #E30613;
}
.select--quick-order-page {
  padding: 0.9375rem 0.625rem;
  background-color: #f0f0f0;
  border-radius: 2px;
  color: #8f8f8f;
}
.select--quick-order-page:hover {
  cursor: pointer;
}
.select__caret {
  right: 0.9375rem;
}
.select__vertical-center {
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/atoms/table/table.scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.table thead {
  background-color: #f0f0f0;
  text-transform: uppercase;
  font-size: 0.75rem;
  font-weight: 500;
}
.table th {
  color: #666666;
  font-weight: 500;
}
.table th,
.table td {
  padding: 1rem 0.9375rem;
  text-align: left;
}
@media only screen and (min-width: 768px) {
  .table th,
  .table td {
    padding-left: 2rem;
    padding-right: 2rem;
  }
}
.table tbody {
  font-size: 0.875rem;
}
.table tbody tr:not(:first-child) {
  border-top: 0.0625rem solid #e7eaee;
}
.table tbody th {
  font-weight: 500;
}
.table tbody td {
  color: #666666;
}
.table tbody strong {
  color: #666666;
  font-weight: 500;
}
.table--expand {
  width: 100%;
}
.table__row--inactive {
  color: #666666;
}
.table--grid thead {
  white-space: nowrap;
}
.table--grid th,
.table--grid td {
  padding: 1rem 0.9375rem;
}
@media only screen and (max-width: 767px) {
  .table--responsive {
    display: block;
  }
  .table--responsive thead,
  .table--responsive tbody,
  .table--responsive th,
  .table--responsive td {
    display: block;
    text-transform: capitalize;
  }
  .table--responsive thead tr,
  .table--responsive thead th {
    display: none;
  }
  .table--responsive tr {
    padding-top: 15px;
    padding-bottom: 15px;
  }
  .table--responsive tbody tr:not(.is-hidden-sm-md) {
    display: block;
  }
  .table--responsive td {
    padding-top: 0;
    padding-bottom: 0;
  }
  .table--responsive td::before {
    font-weight: 500;
    display: inline-block;
    width: auto;
    padding-right: 0.625rem;
    text-transform: uppercase;
    -ms-flex-negative: 0;
        flex-shrink: 0;
  }
  .table--responsive .row--order-details {
    padding: 1.25rem;
    border: 0.0625rem solid #dce0e5;
    border-radius: 2px;
    position: relative;
    margin-bottom: 1rem;
  }
}
@media only screen and (max-width: 767px) and (min-width: 768px) {
  .table--responsive .row--order-details {
    padding: 0;
    border: none;
    margin-bottom: 0;
  }
}
@media only screen and (max-width: 767px) {
  .table--responsive .transform-table-header,
  .table--responsive .transform-table-header__cell {
    display: block;
    padding: 0;
    background: #fff;
  }
  .table--responsive .transform-table-header__cell {
    font-size: 1.125rem;
    font-weight: 500;
    padding-top: 1rem;
  }
  .table--responsive .transform-cell {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    position: relative;
    background-color: #f0f0f0;
  }
}
@media only screen and (max-width: 767px) and (min-width: 768px) {
  .table--responsive .transform-cell {
    display: table-cell;
  }
}
@media only screen and (max-width: 767px) {
  .table--responsive .transform-cell::before {
    content: attr(data-content) ":";
  }
  .table--responsive .transform-cell--alt {
    padding: 0;
    background-color: rgba(255, 255, 255, 0);
  }
  .table--responsive .transform-cell--no-label::before {
    display: none;
  }
}
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/shop-ui/src/SprykerShop/Yves/ShopUi/Theme/default/components/atoms/textarea/style.scss ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.textarea {
  -webkit-transition: border-color 250ms ease-in-out;
  transition: border-color 250ms ease-in-out;
  display: inline-block;
  padding: 0.25rem 0.5rem;
  border: 1px solid #dce0e5;
  max-width: 100%;
}
.textarea:focus {
  border-color: #8f8f8f;
}
.textarea::-webkit-input-placeholder {
  color: #8f8f8f;
}
.textarea::-moz-placeholder {
  color: #8f8f8f;
}
.textarea:-ms-input-placeholder {
  color: #8f8f8f;
}
.textarea::-ms-input-placeholder {
  color: #8f8f8f;
}
.textarea::placeholder {
  color: #8f8f8f;
}
.textarea--expand {
  display: block;
  width: 100%;
}
.textarea--error {
  border-color: #E30613;
}
.textarea[disabled], .textarea--disabled {
  background-color: #f4f4f4;
  cursor: not-allowed;
}
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/atoms/thumbnail/thumbnail.scss ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.thumbnail {
  position: relative;
  display: block;
  height: 10rem;
  margin: 0.5rem;
}
.thumbnail--smaller {
  height: 3.25rem;
}
@media only screen and (min-width: 768px) {
  .thumbnail--smaller {
    height: 2.625rem;
  }
}
.thumbnail--small {
  height: 5rem;
}
.thumbnail--medium {
  height: 15rem;
}
.thumbnail--big {
  height: 20rem;
}
.thumbnail--bigger {
  height: 30rem;
}
.thumbnail--min-size {
  min-width: 2.5rem;
}
.thumbnail--reset-indents {
  margin: 0;
}
.thumbnail--category-list {
  height: 19.5625rem;
}
@media only screen and (min-width: 550px) {
  .thumbnail--category-list {
    height: 10rem;
  }
}
.thumbnail--catalog {
  height: 11.25rem;
}
@media only screen and (min-width: 768px) {
  .thumbnail--catalog {
    height: 15rem;
  }
}
.thumbnail--category {
  height: 7.75rem;
}
@media only screen and (min-width: 768px) {
  .thumbnail--category {
    height: 15rem;
  }
}
.thumbnail--shopping-list {
  height: 4.6875rem;
}
@media only screen and (min-width: 768px) {
  .thumbnail--shopping-list {
    height: 10rem;
  }
}
.thumbnail--cart {
  height: 4.6875rem;
  margin: 0;
}
@media only screen and (min-width: 768px) {
  .thumbnail--cart {
    height: 10rem;
    margin: 0.5rem;
  }
}
.thumbnail--suggestion-product {
  margin-top: 0;
}
.thumbnail--summary {
  height: 4.6875rem;
  margin: 0;
}
@media only screen and (min-width: 768px) {
  .thumbnail--summary {
    height: 6.25rem;
    margin: 0.25rem;
  }
}
.thumbnail__image {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  margin: auto;
  max-width: 100%;
  max-height: 100%;
}
.thumbnail--has-border {
  border: 0.25rem solid rgba(255, 255, 255, 0);
  -webkit-box-shadow: 0 0 0 1px #f0f0f0;
          box-shadow: 0 0 0 1px #f0f0f0;
}
.thumbnail--margin-product {
  margin: 0rem 0rem 1.25rem 0rem;
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/atoms/title/title.scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.title--wrap {
  overflow-wrap: break-word;
}
.title--footer {
  font: 500 0.9375rem/1.3125rem "FrutigerNextPro";
  margin-bottom: 1.3125rem;
  color: #666666;
  letter-spacing: 0.0125rem;
}
@media only screen and (max-width: 549px) {
  .title--footer-sm-up-hidden {
    display: none;
  }
}
@media only screen and (min-width: 550px) {
  .title--footer-sm-down-show {
    display: none;
  }
}
@media only screen and (max-width: 549px) {
  .title--footer {
    margin-bottom: 0;
    width: 100%;
    cursor: pointer;
    padding: 1.25rem 0rem;
    font-size: 1.25rem;
    line-height: 1.4375rem;
    font-weight: 400;
  }
  .title--footer:before {
    content: "\f067";
    font-family: "Font Awesome 5 Pro";
    font-weight: 400;
    display: inline-block;
    margin-right: 0.625rem;
  }
  .title--footer.is-active:before {
    content: "\f068";
    font-family: "Font Awesome 5 Pro";
  }
}
.title--subscription-info {
  font: 500 2.125rem/2.6875rem "FrutigerNextPro";
  letter-spacing: 0.01875rem;
  margin-bottom: 1.0625rem;
}
.title--checkout {
  font-size: 1.375rem;
  font-weight: 500;
  margin-bottom: 0.625rem;
}
@media only screen and (min-width: 768px) {
  .title--checkout {
    font-size: 1.75rem;
    margin-bottom: 1.5625rem;
  }
}
.title--second {
  font-size: 1.125rem;
  margin-bottom: 0.875rem;
}
@media only screen and (min-width: 768px) {
  .title--second {
    font-size: 1.5rem;
  }
}
.title__index {
  color: #E30613;
  margin-right: 0.25rem;
}
@media only screen and (min-width: 768px) {
  .title__index {
    margin-right: 0.5rem;
  }
}
.title--sub {
  color: #8f8f8f;
  font-weight: 400;
  margin-bottom: 0.75rem;
}
.title--error-page {
  font: 500 2rem/2.5625rem "FrutigerNextPro";
  margin-bottom: 0.4375rem;
}
.title--product-review {
  margin: 2.25rem 0 1.5rem;
}
.title--product-slider {
  text-align: center;
  font-size: 1.75rem;
  margin-bottom: 1rem;
}
@media only screen and (min-width: 768px) {
  .title--product-slider {
    margin-bottom: 2.0625rem;
    font-size: 2rem;
  }
}
.title--top-margin {
  margin-top: 3.8125rem;
}
@media only screen and (min-width: 768px) {
  .title--top-margin {
    margin-top: 5rem;
  }
}
@media only screen and (min-width: 1024px) {
  .title--top-margin {
    margin-top: 6.875rem;
  }
}
.title--top-margin-small {
  margin-top: 3.4375rem;
}
.title--light {
  color: #fff;
}
.title--product-set-details {
  font-size: 1.375rem;
  font-weight: 500;
}
@media only screen and (min-width: 768px) {
  .title--product-set-details {
    font-size: 3.125rem;
  }
}
.title--mobile-toggler-section {
  margin-bottom: 1.5rem;
  font-weight: 500;
  line-height: normal;
  color: #666666;
}
@media only screen and (max-width: 767px) {
  .title--mobile-toggler-section {
    font-size: 1.0625rem;
    padding-left: 1.8125rem;
    position: relative;
  }
  .title--mobile-toggler-section::before, .title--mobile-toggler-section::after {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    width: 0.625rem;
    height: 0.125rem;
    background: #666666;
  }
  .title--mobile-toggler-section::after {
    -webkit-transform: translateY(-50%) rotate(90deg);
            transform: translateY(-50%) rotate(90deg);
  }
  .title--mobile-toggler-section.active::after {
    display: none;
  }
}
.title--link {
  color: #666666;
  font-weight: 500;
}
@media only screen and (min-width: 768px) {
  .title--link {
    margin-left: 1.25rem;
  }
}
.title--warning {
  color: #E30613;
  line-height: 3.25rem;
  background-color: rgba(227, 6, 19, 0.1);
  margin: 0 -0.9375rem 0.5rem;
}
@media only screen and (min-width: 768px) {
  .title--warning {
    font-size: 1rem;
    margin: 0 0 0.5rem;
  }
}
.title--review-subtitle {
  margin-bottom: 1.25rem;
  font-size: 1.125rem;
  font-weight: 500;
  line-height: normal;
  color: #666666;
  text-align: center;
}
@media only screen and (min-width: 768px) {
  .title--review-subtitle {
    text-align: left;
    font-size: 1.5rem;
  }
}
.title--image {
  max-width: 7.5rem;
  max-height: 1.375rem;
  margin-bottom: 1.0625rem;
}
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/organisms/header/header.scss ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.header {
  position: relative;
  background-color: #fc9fa5;
  z-index: 400;
}
.body-overlay--no-search .header {
  z-index: auto;
}
.header__row {
  padding: 0.5rem;
}
.header__navigation-top {
  position: relative;
  z-index: 403;
}
.header__search-form {
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
  -webkit-transition: opacity 250ms ease-in-out, visibility 250ms ease-in-out, -webkit-transform 250ms ease-in-out;
  transition: opacity 250ms ease-in-out, visibility 250ms ease-in-out, -webkit-transform 250ms ease-in-out;
  transition: opacity 250ms ease-in-out, visibility 250ms ease-in-out, transform 250ms ease-in-out;
  transition: opacity 250ms ease-in-out, visibility 250ms ease-in-out, transform 250ms ease-in-out, -webkit-transform 250ms ease-in-out;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 401;
  -webkit-transform: translateY(-100%);
          transform: translateY(-100%);
}
.header__search-form--active {
  pointer-events: all;
  visibility: visible;
  opacity: 1;
  -webkit-transform: translateY(0);
          transform: translateY(0);
}
@media only screen and (min-width: 1024px) {
  .header__search-form {
    display: block;
    position: relative;
    -webkit-transform: none;
            transform: none;
    -webkit-transition: none;
    transition: none;
    pointer-events: all;
    visibility: visible;
    opacity: 1;
    z-index: 1;
  }
}
.body-overlay--no-search .header__search-form {
  z-index: 700;
}
.header__navigation-main {
  position: relative;
  z-index: 401;
}
.header__top {
  display: none;
}
@media only screen and (min-width: 1024px) {
  .header__top {
    display: block;
    background: #E7E7E7;
  }
}
@media only screen and (min-width: 968px) {
  .header__top {
    padding-left: 0;
  }
}
.header__logo {
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  text-align: center;
  width: 33.33333%;
  min-width: 33.33333%;
}
@media only screen and (min-width: 550px) {
  .header__logo {
    width: auto;
    min-width: unset;
  }
}
@media only screen and (min-width: 768px) {
  .header__logo {
    -webkit-box-flex: 0;
        -ms-flex-positive: 0;
            flex-grow: 0;
  }
}
@media only screen and (min-width: 1024px) {
  .header__logo {
    padding-right: 3.9375rem;
  }
}
.header__main {
  background: #fff;
  min-height: 6.25rem;
}
@media only screen and (max-width: 969px) {
  .header__main {
    min-height: 4.375rem;
  }
}
.header__main--checkout {
  position: relative;
  padding-top: 0.875rem;
  padding-bottom: 0.875rem;
  min-height: 0;
}
@media only screen and (min-width: 768px) {
  .header__main--checkout {
    padding-top: 1.25rem;
    padding-bottom: 1.25rem;
  }
}
.header__search {
  width: 0;
  -webkit-box-flex: 0;
      -ms-flex-positive: 0;
          flex-grow: 0;
}
@media only screen and (min-width: 768px) {
  .header__search {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
  }
}
@media only screen and (min-width: 1024px) {
  .header__search {
    max-width: 26.4375rem;
  }
}
.header__login {
  margin-right: -0.3125rem;
  margin-left: 0.9375rem;
}
@media only screen and (min-width: 550px) {
  .header__login {
    margin-right: 0;
    margin-left: 1.875rem;
  }
}
.header__navigation {
  display: none;
}
@media only screen and (min-width: 1024px) {
  .header__navigation {
    background: #E7E7E7;
    -webkit-box-shadow: 0 0.375rem 0.5rem 0 rgba(0, 0, 0, 0.1);
            box-shadow: 0 0.375rem 0.5rem 0 rgba(0, 0, 0, 0.1);
    display: block;
  }
}
.header__navigation-mobile {
  display: block;
  background-color: #dce0e5;
}
@media only screen and (min-width: 1024px) {
  .header__navigation-mobile {
    display: none;
  }
}
.header__navigation-mobile > .grid > div {
  width: 50%;
  text-align: center;
  cursor: pointer;
  min-height: 2.5rem;
  line-height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 0 15px;
}
.header__navigation-mobile > .grid > div .far {
  padding: 0 0.3125rem;
}
.header__navigation-mobile > .grid > div .external-link-text,
.header__navigation-mobile > .grid > div .clipboard-text {
  padding-top: 0.25rem;
}
.header__navigation-mobile > .grid > div:first-of-type {
  background-color: #dce0e5;
  color: #666666;
}
.header__navigation-mobile > .grid > div:last-of-type {
  background-color: #666666;
  color: #fff;
}
.header__actions {
  margin: 0 -0.625rem;
}
@media only screen and (min-width: 768px) {
  .header__actions {
    margin: 0;
  }
  .header__actions .container {
    padding: 0;
  }
}
@media only screen and (min-width: 1024px) {
  .header__actions {
    display: none;
    position: absolute;
    top: 0.4375rem;
    left: 0.9375rem;
  }
}
.header__actions-item {
  padding: 0 0.3125rem;
  color: #000;
}
@media only screen and (min-width: 550px) {
  .header__actions-item {
    padding: 0 0.625rem;
  }
}
@media only screen and (min-width: 1024px) {
  .header__actions-item--search, .header__actions-item--menu {
    display: none;
  }
}
.header__actions-item--search .fal, .header__actions-item--menu .fal {
  color: #666666;
  font-size: 1.75rem;
}
.header__user {
  padding-left: 1.25rem;
}
@media only screen and (min-width: 768px) {
  .header__user {
    display: none;
  }
}
.header__user-nav {
  width: 100%;
}
@media only screen and (min-width: 550px) {
  .header__user-nav {
    width: 50%;
  }
}
@media only screen and (min-width: 1024px) {
  .header__user-nav {
    padding-top: 1.25rem;
  }
}
@media only screen and (min-width: 970px) {
  .header__user-nav {
    width: auto;
    padding: 0 0 0 1.25rem;
  }
}
.header__back {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  color: #8f8f8f;
  font-size: 0.75rem;
  line-height: 0.8125rem;
  text-align: center;
  font-weight: 500;
}
@media only screen and (min-width: 768px) {
  .header__back {
    display: inline-block;
    -webkit-transition: border-color 250ms ease-in-out, color 250ms ease-in-out;
    transition: border-color 250ms ease-in-out, color 250ms ease-in-out;
    padding: 0.625rem 1.875rem;
    border: 0.0625rem solid #666666;
    border-radius: 2px;
    font-size: 0.875rem;
    line-height: 1.125rem;
    text-align: left;
  }
  .header__back:hover, .header__back:focus {
    border-color: #E30613;
    color: #E30613;
  }
}
.header__checkout-secure {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  color: #8f8f8f;
  font-size: 0.625rem;
  line-height: 0.75rem;
  font-weight: 500;
}
@media only screen and (min-width: 768px) {
  .header__checkout-secure {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    font-size: 0.875rem;
    line-height: 0.9375rem;
  }
}
.header__checkout-secure-text {
  text-align: center;
}
@media only screen and (min-width: 768px) {
  .header__checkout-secure-text {
    padding-left: 0.5625rem;
  }
}
.header__link {
  color: #666666;
}
.header__link-white {
  color: #fff;
}
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/organisms/navigation-top/navigation-top.scss ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.navigation-top {
  white-space: nowrap;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.navigation-top__actions {
  margin-left: auto;
}
@media only screen and (min-width: 1024px) {
  .navigation-top__actions {
    max-width: calc(100% - 350px);
  }
}
.navigation-top__action-item {
  border-right: solid 1px #fff;
  position: relative;
  z-index: 5;
  line-height: 1.875rem;
}
.navigation-top__action-item:hover .list--company-user {
  -webkit-transform: scale(1);
          transform: scale(1);
}
.navigation-top__action-item--tel {
  font-size: 0.9375rem;
  color: #666666;
}
.navigation-top__action-item--tel .separator {
  color: transparent;
  display: block;
  height: 0;
}
@media only screen and (min-width: 1024px) {
  .navigation-top__action-item--tel .separator {
    color: inherit;
    display: inline;
    height: 100%;
  }
}
.navigation-top__action-item--working-hours {
  padding-right: 0.5rem;
}
.navigation-top__action-item .fa-phone {
  -webkit-transform: scaleX(-1) rotate(-15deg);
          transform: scaleX(-1) rotate(-15deg);
}
.navigation-top__action-item .language-switcher {
  text-align: center;
}
.navigation-top__company {
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.0375rem;
  line-height: 2.5rem;
  color: #666666;
  padding: 0 30px 0 18px;
  height: 100%;
  text-transform: uppercase;
  white-space: nowrap;
  max-width: 9.375rem;
  overflow: hidden;
  text-overflow: ellipsis;
  position: relative;
  -webkit-transition: color 250ms ease-in-out;
  transition: color 250ms ease-in-out;
}
@media only screen and (min-width: 1024px) {
  .navigation-top__company {
    max-width: 22.8125rem;
  }
}
.is-touch .navigation-top__company {
  pointer-events: none;
}
.navigation-top__company:hover {
  color: #a6a6a6;
}
.navigation-top__company--no-menu {
  cursor: default;
}
.navigation-top__company--no-menu:hover {
  color: #666666;
}
.navigation-top__company-icon {
  width: 7px;
  height: 4px;
  margin: 0 -5px 0 5px;
  position: absolute;
  top: calc(50% - 2px);
  right: 17px;
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/shop-ui/src/SprykerShop/Yves/ShopUi/Theme/default/components/organisms/notification-area/style.scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.notification-area {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 600;
}
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/organisms/section/section.scss ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.section {
  padding: 1.375rem 0;
}
@media only screen and (min-width: 768px) {
  .section {
    padding: 3rem 0;
  }
}
@media print {
  .section {
    padding: 0;
  }
}
.section__title {
  font-weight: 500;
  margin-bottom: 1.5rem;
}
.section--center {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row nowrap;
          flex-flow: row nowrap;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.section--center__inner {
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
}
.section--last {
  padding-bottom: 4.375rem;
}
@media only screen and (min-width: 768px) {
  .section--last {
    padding-bottom: 6rem;
  }
}
.section--secondary {
  padding: 2rem 0 1rem;
}
@media only screen and (min-width: 768px) {
  .section--secondary {
    padding-top: 3.125rem;
  }
}
@media only screen and (min-width: 1024px) {
  .section--secondary {
    padding-top: 4.375rem;
  }
}
.section--bg-dark {
  padding: 1.375rem 0 1.1875rem;
  background-color: #f0f0f0;
}
@media only screen and (min-width: 768px) {
  .section--bg-dark {
    padding: 3.125rem 0 5rem;
  }
  .section--bg-dark .product-card__container {
    background-color: #fff;
  }
}
.section--bg-dark .product-card {
  padding-bottom: 0.9375rem;
}
@media only screen and (min-width: 768px) {
  .section--bg-dark .product-card {
    padding-bottom: 1.875rem;
  }
}
.section--bg-dark .product-card__image-wrap {
  background-color: #fff;
}
.section--bg-dark .product-card__image-wrap::before {
  background: transparent;
}
.section--bg-dark .product-card__overlay::before {
  background-color: rgba(255, 255, 255, 0);
}
.section--full-width {
  margin-left: -15px;
  margin-right: -15px;
}
.section--no-mobile-bottom-indent {
  padding-bottom: 0;
}
@media only screen and (min-width: 768px) {
  .section--no-mobile-bottom-indent {
    padding-bottom: 1rem;
  }
}
.section__title {
  font-weight: 500;
  font-size: 1.75rem;
  margin-bottom: 1rem;
}
@media only screen and (min-width: 768px) {
  .section__title {
    font-size: 1.875rem;
  }
}
@media only screen and (min-width: 1024px) {
  .section__title {
    font-size: 2rem;
    margin-bottom: 1.5rem;
  }
}
.section__title--secondary {
  color: #666666;
  text-align: center;
}
.section__title--mobile-center {
  text-align: center;
}
@media only screen and (min-width: 768px) {
  .section__title--mobile-center {
    text-align: left;
  }
}
.section__sub-title, .section__text {
  color: #666666;
  text-align: center;
  line-height: normal;
  margin-bottom: 1.625rem;
}
@media only screen and (min-width: 768px) {
  .section__sub-title, .section__text {
    margin-bottom: 2.5rem;
  }
}
.section__sub-title {
  font-size: 1rem;
}
@media only screen and (min-width: 768px) {
  .section__sub-title {
    font-size: 1.125rem;
  }
}
.section__text {
  font-size: 0.9375rem;
  line-height: 1.61;
  max-width: 60.625rem;
}
@media only screen and (min-width: 768px) {
  .section__text {
    font-size: 1.125rem;
  }
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/organisms/side-drawer/side-drawer.scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.side-drawer {
  position: relative;
  z-index: 500;
}
@media only screen and (min-width: 1024px) {
  .side-drawer {
    display: none;
  }
}
.side-drawer__overlay {
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
  -webkit-transition: visibility 250ms ease-in-out, opacity 250ms ease-in-out;
  transition: visibility 250ms ease-in-out, opacity 250ms ease-in-out;
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background-color: rgba(102, 102, 102, 0.4);
}
.side-drawer__drawer {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-shadow: 0 2px 5px 1px rgba(0, 0, 0, 0.1);
          box-shadow: 0 2px 5px 1px rgba(0, 0, 0, 0.1);
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
  -webkit-transition: top 250ms ease-in-out, visibility 250ms ease-in-out, opacity 250ms ease-in-out;
  transition: top 250ms ease-in-out, visibility 250ms ease-in-out, opacity 250ms ease-in-out;
  position: fixed;
  top: -100%;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #fff;
  padding: 1.25rem 0;
  overflow: hidden;
}
@media only screen and (min-width: 550px) {
  .side-drawer__drawer {
    -webkit-transition: left 250ms ease-in-out, visibility 250ms ease-in-out, opacity 250ms ease-in-out;
    transition: left 250ms ease-in-out, visibility 250ms ease-in-out, opacity 250ms ease-in-out;
    top: 0;
    left: -23.4375rem;
    width: 23.4375rem;
  }
}
.side-drawer__holder {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  overflow: hidden;
  overflow-y: auto;
  padding: 0 0.8125rem;
}
.side-drawer__close {
  position: absolute;
  left: 0.625rem;
  top: 1.125rem;
  width: 2.5rem;
  height: 1.875rem;
  background: none;
}
.side-drawer__navigation-top {
  padding: 0 0.8125rem 0.625rem 3.375rem;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
@media only screen and (min-width: 768px) {
  .side-drawer__navigation-top {
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
  }
}
@media only screen and (min-width: 1024px) {
  .side-drawer__navigation-top-actions {
    display: none;
  }
}
.side-drawer__user-link {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  padding: 0.75rem 0;
  font-weight: 500;
  line-height: 1rem;
  font-size: 0.625rem;
  letter-spacing: 0.0375rem;
  text-transform: uppercase;
}
.side-drawer__user-link-icon {
  margin-right: 0.625rem;
}
.side-drawer__navigation {
  padding-bottom: 0.9375rem;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}
.side-drawer__info {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  padding-bottom: 1.5625rem;
}
.side-drawer__contact {
  display: block;
  padding: 1rem 0.9375rem 1rem 4rem;
  border-radius: 0.125rem;
  border: 0.0625rem solid #dce0e5;
  color: #666666;
  position: relative;
}
.side-drawer__contact-icon {
  position: absolute;
  left: 1.25rem;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
.side-drawer__contact-text {
  display: block;
  font-size: 0.875rem;
  line-height: 1.2;
}
.side-drawer__contact-text--weight {
  font-weight: 500;
}
.side-drawer--show .side-drawer__overlay {
  pointer-events: all;
  visibility: visible;
  opacity: 1;
}
.side-drawer--show .side-drawer__drawer {
  pointer-events: all;
  visibility: visible;
  opacity: 1;
  left: 0;
  top: 0;
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/action-bar/action-bar.scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.action-bar {
  margin-top: 1rem;
  margin-bottom: 1rem;
}
@media only screen and (min-width: 550px) {
  .action-bar {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-flow: row nowrap;
            flex-flow: row nowrap;
  }
}
@media print {
  .action-bar {
    display: none;
  }
}
.action-bar--first {
  margin-top: 0;
}
.action-bar--big {
  margin-top: 3rem;
}
.action-bar--small {
  margin-top: 1rem;
  margin-bottom: 0.5rem;
}
@media only screen and (min-width: 550px) {
  .action-bar--narrow {
    max-width: 43.75rem;
  }
}
@media only screen and (min-width: 1024px) {
  .action-bar--narrow {
    max-width: 31.25rem;
  }
}
.action-bar__title {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  overflow-wrap: break-word;
}
.action-bar__title--small {
  font-size: 1.125rem;
  line-height: 1.4;
}
.action-bar__title--middle {
  font-size: 1.375rem;
}
@media only screen and (min-width: 550px) {
  .action-bar__actions {
    -webkit-box-flex: 0;
        -ms-flex: none;
            flex: none;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-flow: row nowrap;
            flex-flow: row nowrap;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
}
.action-bar__action {
  margin-top: 0.5rem;
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row nowrap;
          flex-flow: row nowrap;
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
@media only screen and (min-width: 550px) {
  .action-bar__action {
    margin-top: 0;
    margin-left: 0.5rem;
    width: auto;
  }
}
.action-bar__icon {
  display: block;
  width: 0.8125rem;
  height: 0.8125rem;
  margin-right: 0.625rem;
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
}
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/shop-ui/src/SprykerShop/Yves/ShopUi/Theme/default/components/molecules/ajax-add-to-cart/style.scss ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.ajax-add-to-cart__button {
  height: 100%;
  white-space: nowrap;
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/ajax-loader/ajax-loader.scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.ajax-loader {
  -webkit-transition: visibility 250ms ease-in-out, opacity 250ms ease-in-out;
  transition: visibility 250ms ease-in-out, opacity 250ms ease-in-out;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  padding: 0.5rem;
  background-color: rgba(240, 240, 240, 0.5);
  z-index: 750;
}
.ajax-loader__spinner {
  -webkit-animation-name: spin-to;
          animation-name: spin-to;
  -webkit-animation-duration: 1s;
          animation-duration: 1s;
  -webkit-animation-iteration-count: infinite;
          animation-iteration-count: infinite;
  -webkit-animation-timing-function: linear;
          animation-timing-function: linear;
}
.ajax-loader__label {
  margin-left: 0.5rem;
}
.ajax-loader--solid-bg {
  background-color: #fff;
}
.ajax-loader--big .ajax-loader__label {
  font-size: 1.125rem;
}
.ajax-loader--bottom {
  top: auto;
}
.ajax-loader--dynamic {
  z-index: 300;
}
.ajax-loader--viewport-centered {
  display: block;
}
.ajax-loader--viewport-centered .ajax-loader__layout {
  display: inline-block;
  position: sticky;
  top: 50%;
  margin-left: 50%;
  -webkit-transform: translate(-50%);
          transform: translate(-50%);
}
.ajax-loader {
  background: rgba(255, 255, 255, 0.6);
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/shop-ui/src/SprykerShop/Yves/ShopUi/Theme/default/components/molecules/alert/style.scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.alert {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  padding: 1.25rem 1rem;
  margin: 0.5rem 0;
  background: #eaf1fa;
  color: #333333;
}
.alert__icon {
  color: #0064b4;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  margin: 0 1rem 0 0;
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/autocomplete-form/autocomplete-form.scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.autocomplete-form {
  position: relative;
}
.autocomplete-form__field {
  position: relative;
  z-index: 702;
}
.autocomplete-form__input {
  padding: 0.9375rem 2.25rem 0.9375rem 1.125rem;
  border: none;
  font-size: 0.9375rem;
  font-weight: 400;
  border-radius: 2px;
  -webkit-box-shadow: 0 18px 18px 0 rgba(0, 0, 0, 0.05), 0 3px 3px 0 rgba(0, 0, 0, 0.05);
          box-shadow: 0 18px 18px 0 rgba(0, 0, 0, 0.05), 0 3px 3px 0 rgba(0, 0, 0, 0.05);
}
.autocomplete-form__input--active {
  border-radius: 2px 2px 0 0;
}
.autocomplete-form__suggestion {
  margin: 0;
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background-color: #fff;
  padding: 0.625rem 1.125rem;
  font-size: 0.875rem;
  line-height: 2;
  border-radius: 0 0 2px 2px;
  -webkit-box-shadow: 0 18px 18px 0 rgba(0, 0, 0, 0.05), 0 3px 3px 0 rgba(0, 0, 0, 0.05);
          box-shadow: 0 18px 18px 0 rgba(0, 0, 0, 0.05), 0 3px 3px 0 rgba(0, 0, 0, 0.05);
  max-height: 30rem;
  overflow-x: hidden;
  z-index: 703;
}
.autocomplete-form__clean-button {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  padding-right: 0.75rem;
}
.autocomplete-form--overlap {
  z-index: 1150;
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/breadcrumb-step/breadcrumb-step.scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.breadcrumb-step {
  display: inline-block;
  font: 0.8125rem/1rem "FrutigerNextPro";
}
.breadcrumb-step--progress-step, .breadcrumb-step--progress-complete {
  font-size: 0.625rem;
  line-height: normal;
  margin: 0 0.9375rem;
  position: relative;
}
@media only screen and (min-width: 550px) {
  .breadcrumb-step--progress-step, .breadcrumb-step--progress-complete {
    font-size: 1.125rem;
  }
}
@media only screen and (min-width: 768px) {
  .breadcrumb-step--progress-step, .breadcrumb-step--progress-complete {
    margin: 0 1.8125rem;
  }
}
.breadcrumb-step--progress-step:not(:last-child)::after, .breadcrumb-step--progress-complete:not(:last-child)::after {
  content: "";
  position: absolute;
  left: 100%;
  top: 0.375rem;
  width: 2.25rem;
  margin-left: -0.1875rem;
  height: 0.0625rem;
  background: rgba(102, 102, 102, 0.8);
}
@media only screen and (min-width: 550px) {
  .breadcrumb-step--progress-step:not(:last-child)::after, .breadcrumb-step--progress-complete:not(:last-child)::after {
    height: 0.125rem;
    top: 0.75rem;
  }
}
@media only screen and (min-width: 768px) {
  .breadcrumb-step--progress-step:not(:last-child)::after, .breadcrumb-step--progress-complete:not(:last-child)::after {
    display: none;
  }
}
.breadcrumb-step--progress-step.breadcrumb-step--active, .breadcrumb-step--progress-complete.breadcrumb-step--active {
  border-bottom: 0;
}
@media only screen and (min-width: 768px) {
  .breadcrumb-step--progress-step.breadcrumb-step--active, .breadcrumb-step--progress-complete.breadcrumb-step--active {
    border-bottom: 0.0625rem solid #666666;
  }
}
.breadcrumb-step--progress-complete {
  color: #E30613;
}
.breadcrumb-step--progress-complete:not(:last-child)::after {
  background: #E30613;
}
.breadcrumb-step--progress-complete .breadcrumb-step__link {
  color: inherit;
}
@media only screen and (min-width: 768px) {
  .breadcrumb-step--progress-complete .breadcrumb-step__link {
    margin-left: 0.25rem;
  }
}
.breadcrumb-step--progress-complete .breadcrumb-step__number {
  display: none;
}
.breadcrumb-step:last-child .breadcrumb-step__separator {
  display: none;
}
.breadcrumb-step:last-child .breadcrumb-step__link {
  color: #666666;
}
.breadcrumb-step__separator {
  margin-left: 0.25rem;
  margin-right: 0.25rem;
  color: #8f8f8f;
}
.breadcrumb-step--active {
  font-weight: 500;
  border-bottom: 0.0625rem solid #666666;
  color: #666666;
  word-wrap: break-word;
}
.breadcrumb-step__link, .breadcrumb-step--disabled:not(.breadcrumb-step--active) {
  -webkit-transition: color 250ms ease-in-out;
  transition: color 250ms ease-in-out;
  color: #8f8f8f;
}
.breadcrumb-step__link:hover, .breadcrumb-step__link:focus, .breadcrumb-step--disabled:not(.breadcrumb-step--active):hover, .breadcrumb-step--disabled:not(.breadcrumb-step--active):focus {
  color: #666666;
}
.breadcrumb-step__checked {
  width: 0.8125rem;
  height: 0.8125rem;
  line-height: 0.6875rem;
  background-color: #E30613;
  color: #fff;
  border-radius: 50%;
  margin-bottom: 0.125rem;
}
@media only screen and (min-width: 550px) {
  .breadcrumb-step__checked {
    width: 1.125rem;
    height: 1.125rem;
    line-height: 0.9375rem;
    margin: 0.1875rem 0 0.25rem;
  }
}
@media only screen and (min-width: 768px) {
  .breadcrumb-step__checked {
    margin: 0 0 0 0.25rem;
  }
}
.breadcrumb-step__number {
  display: block;
  margin-bottom: 0.125rem;
}
@media only screen and (min-width: 768px) {
  .breadcrumb-step__number {
    display: inline;
    margin-bottom: 0;
  }
}
.breadcrumb-step__holder {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: reverse;
      -ms-flex-direction: column-reverse;
          flex-direction: column-reverse;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media only screen and (min-width: 768px) {
  .breadcrumb-step__holder {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
  }
}
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/shop-ui/src/SprykerShop/Yves/ShopUi/Theme/default/components/molecules/card/style.scss ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.card {
  position: relative;
}
.card__container {
  position: relative;
  padding-bottom: 2.5rem;
}
.card__actions-container {
  position: absolute;
  bottom: 0.5rem;
  left: 0.5rem;
  right: 0.5rem;
  margin: auto;
}
.card--stretch {
  height: 100%;
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/shop-ui/src/SprykerShop/Yves/ShopUi/Theme/default/components/molecules/cart-counter/style.scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.cart-counter {
  display: inline-block;
}
.cart-counter__quantity {
  font-size: 0.875rem;
  display: inline-block;
  min-width: 1.5rem;
  height: 1.5rem;
  background: #E30613;
  border-radius: 100%;
  color: #fff;
  text-align: center;
  line-height: 1.5rem;
  margin-left: 0.25rem;
}
.cart-counter__quantity--hidden {
  display: none;
}
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/cart-items-counter/cart-items-counter.scss ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.cart-items-counter__icon {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  height: 2.375rem;
  padding-right: 0.25rem;
}
@media only screen and (min-width: 768px) {
  .cart-items-counter__icon {
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    padding: 0;
  }
}
.cart-items-counter__text {
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
@media only screen and (min-width: 768px) {
  .cart-items-counter__text {
    display: inline;
    white-space: normal;
  }
}
.cart-items-counter__quantity {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 1rem;
  height: 1rem;
  background-color: #E30613;
  color: #fff;
  text-align: center;
  font-size: 0.75rem;
  font-weight: 500;
  margin: 0.375rem 0 0 0.0625rem;
}
@media only screen and (min-width: 768px) {
  .cart-items-counter__quantity {
    margin: 0.1875rem 0 0 0.375rem;
  }
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/shop-ui/src/SprykerShop/Yves/ShopUi/Theme/default/components/molecules/collapsible-list/styles.scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/shop-ui/src/SprykerShop/Yves/ShopUi/Theme/default/components/molecules/endless-scroll/style.scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.endless-scroll {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  max-height: 100%;
  overflow: hidden;
}
.endless-scroll__scroll-container {
  overflow-y: auto;
  width: 100%;
}
.endless-scroll__loader {
  position: relative;
}
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/flash-message/flash-message.scss ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.flash-message {
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
  -webkit-transition: visibility 500ms ease-in-out, opacity 500ms ease-in-out, max-height 500ms ease-in-out;
  transition: visibility 500ms ease-in-out, opacity 500ms ease-in-out, max-height 500ms ease-in-out;
  max-height: 0;
  overflow-y: hidden;
  font-size: 17px;
  font-family: "FrutigerNextPro";
  background-color: #1ebea0;
}
.flash-message__content {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  width: 100%;
}
.flash-message__content::after {
  display: none;
}
.flash-message__text {
  padding-right: 1rem;
}
.flash-message__static-link {
  color: #fff;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  cursor: pointer;
}
.flash-message__message {
  padding: 1.25rem 1rem;
  color: #fff;
}
.flash-message--show {
  pointer-events: all;
  visibility: visible;
  opacity: 1;
  max-height: 8rem;
}
.flash-message--info {
  color: #000;
}
.flash-message--success, .flash-message[data-action=success] {
  background-color: #1ebea0;
}
.flash-message--warning, .flash-message[data-action=warning] {
  background-color: #fdbe36;
}
.flash-message--alert, .flash-message[data-action=alert] {
  background-color: #E30613;
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/form/form.scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.form .form {
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}
.form__fields {
  margin-left: -0.5rem;
  margin-right: -0.5rem;
}
.form__field {
  padding: 0.5rem;
}
.form__actions {
  text-align: right;
}
.form__action {
  margin-top: 0.5rem;
  margin-left: 0.5rem;
}
.form--inline .form__container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
}
.form--inline .form__fields {
  float: left;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  -ms-flex-preferred-size: auto;
      flex-basis: auto;
}
.form--inline .form__actions {
  -webkit-box-flex: 0;
      -ms-flex-positive: 0;
          flex-grow: 0;
  -ms-flex-preferred-size: auto;
      flex-basis: auto;
}
.form--inline .form__field {
  padding-bottom: 0;
  padding-right: 0;
}
.form--extend {
  width: 100%;
}

.form__field + .form__field {
  margin-top: 0.5rem;
}
.form__field--section {
  margin-top: 3rem;
  width: 100%;
}
.form__actions {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  text-align: center;
}
@media only screen and (min-width: 768px) {
  .form__actions {
    margin-top: 1rem;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
}
.form__action {
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
  width: 100%;
  margin: 0.625rem 0 0 0;
}
@media only screen and (min-width: 768px) {
  .form__action {
    width: auto;
    margin: 0 1rem 0 0;
  }
}
@media only screen and (min-width: 550px) {
  .form__action--expand-sm-md {
    width: auto;
    margin: 0.625rem 1rem 0 0;
  }
}
@media only screen and (min-width: 768px) {
  .form__action--expand-sm-md {
    margin-top: 0;
  }
}
.form__action--primary {
  -webkit-box-ordinal-group: 0;
      -ms-flex-order: -1;
          order: -1;
}
.form__action--sm-lg-first {
  -webkit-box-ordinal-group: 0;
      -ms-flex-order: -1;
          order: -1;
}
@media only screen and (min-width: 768px) {
  .form__action--sm-lg-first {
    -webkit-box-ordinal-group: 1;
        -ms-flex-order: 0;
            order: 0;
  }
}
.form__action--sm-md-first {
  -webkit-box-ordinal-group: 0;
      -ms-flex-order: -1;
          order: -1;
}
@media only screen and (min-width: 550px) {
  .form__action--sm-md-first {
    -webkit-box-ordinal-group: 1;
        -ms-flex-order: 0;
            order: 0;
  }
}
.form__action--link {
  width: auto;
  margin: 0.625rem auto 0;
  font-size: 0.8125rem;
  text-decoration: underline;
}
@media only screen and (min-width: 768px) {
  .form__action--link {
    margin: 0 1rem 0 0;
    font-size: 1rem;
    text-decoration: none;
  }
}
.form__title-description {
  color: #666666;
  margin: -0.5rem 0 1rem;
}
.form--narrow .form__container {
  width: 100%;
}
@media only screen and (min-width: 550px) {
  .form--narrow .form__container {
    max-width: 43.75rem;
  }
}
@media only screen and (min-width: 1024px) {
  .form--narrow .form__container {
    max-width: 31.25rem;
  }
}
.form--subscription {
  padding-bottom: 2rem;
}
@media only screen and (min-width: 550px) {
  .form--subscription {
    padding-bottom: 0;
  }
}
.form--subscription .form__container {
  position: relative;
}
.form--subscription .form__fields,
.form--subscription .form__actions,
.form--subscription .form__action {
  margin: 0;
}
.form--subscription .form__field {
  padding: 0;
}
.form--subscription .form__actions {
  position: absolute;
  right: 0;
  bottom: 0;
}
.form--subscription .label {
  display: none;
}
.form--subscription .input {
  border-radius: 0;
  border: none;
  border-bottom: 2px solid #666666;
  background-color: rgba(255, 255, 255, 0);
  font-size: 1rem;
  line-height: 1.25rem;
  letter-spacing: 0.0125rem;
  color: #666666;
  padding: 0.625rem 2.25rem 0.625rem 0;
}
.form--subscription .input::-webkit-input-placeholder {
  color: #666666;
}
.form--subscription .input::-moz-placeholder {
  color: #666666;
}
.form--subscription .input:-ms-input-placeholder {
  color: #666666;
}
.form--subscription .input::-ms-input-placeholder {
  color: #666666;
}
.form--subscription .input::placeholder {
  color: #666666;
}
@media only screen and (min-width: 768px) {
  .form--subscription .input {
    font-size: 1.125rem;
    line-height: 1.4375rem;
    letter-spacing: 0.016875rem;
    padding: 0.8125rem 2.875rem 1rem 0;
  }
}
.form--subscription .button {
  color: #666666;
  min-height: 2.625rem;
  padding-right: 0.625rem;
  padding-bottom: 0.625rem;
}
.form--subscription .button:hover, .form--subscription .button:focus {
  color: #8f8f8f;
}
@media only screen and (min-width: 768px) {
  .form--subscription .button {
    min-height: 3.375rem;
    padding-right: 1.375rem;
    padding-bottom: 0.625rem;
  }
}
.form--subscription .icon {
  width: 0.75rem;
  height: 0.75rem;
}
@media only screen and (min-width: 768px) {
  .form--subscription .icon {
    width: 1rem;
    height: 1rem;
  }
}
.form--browse-file .form__field:not(:first-of-type),
.form--browse-file .form__actions,
.form--browse-file .input {
  display: none;
}
.form--text-order .form__field {
  padding-top: 0;
}
.form--text-order .form__actions {
  display: none;
}
.form--text-order .textarea {
  min-height: 7.4375rem;
  padding: 1.0625rem 1.25rem 1.125rem;
  font-size: 0.8125rem;
  font-weight: 400;
  color: #8f8f8f;
  border-radius: 2px;
  border: none;
  -webkit-box-shadow: 0 0.625rem 0.625rem 0 rgba(0, 0, 0, 0.05), 0 0.1875rem 0.1875rem 0 rgba(0, 0, 0, 0.05);
          box-shadow: 0 0.625rem 0.625rem 0 rgba(0, 0, 0, 0.05), 0 0.1875rem 0.1875rem 0 rgba(0, 0, 0, 0.05);
}
@media only screen and (min-width: 768px) {
  .form--text-order .textarea {
    min-height: 5.375rem;
    padding: 0.9375rem 1.25rem;
  }
}
.form--checkout .select2-container {
  display: table;
  table-layout: fixed;
}
@media only screen and (min-width: 550px) {
  .form--checkout .select2-container {
    display: inherit;
    table-layout: inherit;
  }
}
@media only screen and (min-width: 550px) {
  .form--availability-notification {
    padding-bottom: 0;
  }
}
.form--availability-notification .form__container {
  position: relative;
}
.form--availability-notification .form__fields,
.form--availability-notification .form__actions,
.form--availability-notification .form__action {
  margin: 0;
}
.form--availability-notification .form__field {
  padding: 0;
}
.form--availability-notification .form__actions {
  position: absolute;
  right: 0;
  bottom: 0;
}
.form--availability-notification .input {
  line-height: 0.0625rem;
  padding: 0.5625rem;
}
.form--availability-notification .button {
  min-height: 2.375rem;
}
.form--divider {
  margin-bottom: 1.5625rem;
}
.form--hidden {
  display: none;
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/shop-ui/src/SprykerShop/Yves/ShopUi/Theme/default/components/molecules/formatted-number-input/style.scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.formatted-number-input .formatted-number-input__input {
  -webkit-transition: border-color 250ms ease-in-out;
  transition: border-color 250ms ease-in-out;
  display: inline-block;
  padding: 0.25rem 0.5rem;
  border: 1px solid #dce0e5;
}
.formatted-number-input .formatted-number-input__input:focus {
  border-color: #8f8f8f;
}
.formatted-number-input .formatted-number-input__input::-webkit-input-placeholder {
  color: #8f8f8f;
}
.formatted-number-input .formatted-number-input__input::-moz-placeholder {
  color: #8f8f8f;
}
.formatted-number-input .formatted-number-input__input:-ms-input-placeholder {
  color: #8f8f8f;
}
.formatted-number-input .formatted-number-input__input::-ms-input-placeholder {
  color: #8f8f8f;
}
.formatted-number-input .formatted-number-input__input::placeholder {
  color: #8f8f8f;
}
.formatted-number-input .formatted-number-input__input--expand {
  display: block;
  width: 100%;
}
.formatted-number-input .formatted-number-input__input--naked {
  background-color: rgba(255, 255, 255, 0);
  border: none;
}
.formatted-number-input .formatted-number-input__input--error {
  border-color: #E30613;
}
.formatted-number-input .formatted-number-input__input[disabled], .formatted-number-input .formatted-number-input__input--disabled {
  background-color: #f4f4f4;
  cursor: not-allowed;
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/shop-ui/src/SprykerShop/Yves/ShopUi/Theme/default/components/molecules/image-carousel/style.scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.image-carousel__container {
  position: relative;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}
.image-carousel__view {
  position: relative;
  max-width: 100%;
  overflow: hidden;
  z-index: 1;
}
.image-carousel__slider {
  -webkit-transition: -webkit-transform 500ms ease-in-out;
  transition: -webkit-transform 500ms ease-in-out;
  transition: transform 500ms ease-in-out;
  transition: transform 500ms ease-in-out, -webkit-transform 500ms ease-in-out;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
}
.image-carousel__dots {
  text-align: center;
  line-height: 0;
}
.image-carousel__dot {
  display: inline-block;
  padding: 0.25rem;
}
.image-carousel__dot::before {
  -webkit-transition: background-color 150ms ease-in-out;
  transition: background-color 150ms ease-in-out;
  content: "";
  display: block;
  width: 0.5rem;
  height: 0.5rem;
  background-color: #dadada;
  border-radius: 100%;
}
.image-carousel__dot:hover::before, .image-carousel__dot--current::before {
  background-color: #E30613;
}
.image-carousel__navigation {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  position: absolute;
  top: 0;
  bottom: 0;
  z-index: 2;
  pointer-events: none;
}
.image-carousel__navigation--prev {
  left: 0;
}
.image-carousel__navigation--next {
  right: 0;
}
.image-carousel__arrow {
  -webkit-transition: color 250ms ease-in-out;
  transition: color 250ms ease-in-out;
  color: #dadada;
  pointer-events: all;
}
.image-carousel__arrow:hover {
  color: #E30613;
}
.image-carousel--inset .image-carousel__container {
  padding-left: 0;
  padding-right: 0;
}
.image-carousel--inset .image-carousel__navigation {
  width: auto;
}
.image-carousel--inset .image-carousel__arrow {
  padding: 0.5rem;
  background-color: rgba(244, 244, 244, 0.75);
}
@media only screen and (min-width: 770px) {
  .image-carousel__navigation {
    pointer-events: none;
    visibility: hidden;
    opacity: 0;
    -webkit-transition: visibility 250ms ease-in-out, opacity 250ms ease-in-out;
    transition: visibility 250ms ease-in-out, opacity 250ms ease-in-out;
  }
  .image-carousel:hover .image-carousel__navigation {
    pointer-events: all;
    visibility: visible;
    opacity: 1;
    pointer-events: none;
  }
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/jumbotron/jumbotron.scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.jumbotron {
  overflow: hidden;
}
.jumbotron__slider.slick-carousel--jumbotron .slick-dots li::after {
  background: #dce0e5;
  border: 0;
  height: 0.625rem;
  width: 0.625rem;
}
.jumbotron__slider.slick-carousel--jumbotron .slick-dots li.slick-active::after {
  background: #666666;
}
.jumbotron__container {
  height: 22.5rem;
  background-color: #E30613;
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  text-align: center;
  position: relative;
  padding: 0 0.9375rem;
}
@media only screen and (min-width: 550px) {
  .jumbotron__container {
    padding-left: 2.5rem;
    padding-right: 2.5rem;
  }
}
@media only screen and (min-width: 768px) {
  .jumbotron__container {
    height: 28.4375rem;
    text-align: left;
    padding-left: 5.5rem;
    padding-right: 5.5rem;
  }
}
.jumbotron__content {
  display: inline-block;
}
.jumbotron__content--cms {
  color: white;
  margin-bottom: 1.25rem;
}
.jumbotron__content--wrapper {
  text-align: right;
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/shop-ui/src/SprykerShop/Yves/ShopUi/Theme/default/components/molecules/lazy-image/style.scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.lazy-image {
  line-height: 1;
}
.lazy-image--thumbnail {
  position: relative;
  height: 10rem;
  margin: 0.5rem;
}
.lazy-image--smaller {
  height: 3rem;
}
.lazy-image--small {
  height: 5rem;
}
.lazy-image--big {
  height: 20rem;
}
.lazy-image--bigger {
  height: 30rem;
}
.lazy-image--expand {
  width: 100%;
}
.lazy-image--min-size {
  min-width: 2.5rem;
}
.lazy-image--has-border {
  border: 0.25rem solid rgba(255, 255, 255, 0);
  -webkit-box-shadow: 0 0 0 1px #f0f0f0;
          box-shadow: 0 0 0 1px #f0f0f0;
}
.lazy-image--spaceless {
  margin: 0;
}
.lazy-image--with-overlay {
  position: relative;
  overflow: hidden;
}
.lazy-image--with-overlay::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.05);
  z-index: 1;
}
.lazy-image--background {
  position: relative;
}
.lazy-image__image--thumbnail {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  margin: auto;
  max-width: 100%;
  max-height: 100%;
}
.lazy-image__image--color-light {
  color: #dadada;
}
.lazy-image__background {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-position: center;
  background-size: cover;
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/shop-ui/src/SprykerShop/Yves/ShopUi/Theme/default/components/molecules/main-overlay/style.scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.main-overlay {
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background: rgba(102, 102, 102, 0.4);
  z-index: 700;
}
.main-overlay--show {
  pointer-events: all;
  visibility: visible;
  opacity: 1;
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/shop-ui/src/SprykerShop/Yves/ShopUi/Theme/default/components/molecules/main-popup/style.scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.main-popup {
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
  -webkit-box-shadow: 0 2px 5px 1px rgba(0, 0, 0, 0.1);
          box-shadow: 0 2px 5px 1px rgba(0, 0, 0, 0.1);
  position: fixed;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  width: 28.75rem;
  max-width: 90vw;
  max-height: 90vh;
  border-radius: 0.625rem;
  background: #fff;
  z-index: 550;
  overflow: hidden;
}
.main-popup__head {
  min-height: 2rem;
}
.main-popup__title {
  font-size: 1.125rem;
  font-weight: 500;
  padding: 1rem 1.5rem;
}
.main-popup__close {
  -webkit-transition: color 250ms ease-in-out;
  transition: color 250ms ease-in-out;
  position: absolute;
  top: 0.625rem;
  right: 1.5rem;
  width: 2rem;
  height: 2rem;
  border: none;
  background: rgba(255, 255, 255, 0);
  color: #777777;
  cursor: pointer;
}
.main-popup__close:hover, .main-popup__close:focus, .main-popup__close:active {
  border: none;
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
}
.main-popup__content {
  padding: 0 1rem 1.5rem;
  overflow-y: auto;
}
.main-popup--spaceless .main-popup__head {
  min-height: 3rem;
}
.main-popup--spaceless .main-popup__content {
  padding: 0;
}
.main-popup--open {
  pointer-events: all;
  visibility: visible;
  opacity: 1;
}
.main-popup--flex-content .main-popup__content {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/menu/menu.scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@charset "UTF-8";
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.menu__item {
  display: block;
}
.menu__item > .menu {
  margin-left: 0.5rem;
}
.menu--inline {
  display: inline-block;
}
.menu--inline > .menu__item {
  display: inline-block;
  margin: 0 0.5rem;
}
.menu--inline > .menu__item:first-child {
  margin-left: 0;
}
.menu--inline > .menu__item:last-child {
  margin-right: 0;
}
.menu--bullet .menu__item::before {
  content: "•";
  margin-right: 0.25rem;
}
.menu--plus .menu__item::before {
  content: "+";
  margin-right: 0.25rem;
}
.menu--alert {
  color: #E30613;
}
.menu__link, .menu__text {
  position: relative;
  letter-spacing: 0.0125rem;
  z-index: 1;
  -webkit-transition: color 250ms ease-in-out;
  transition: color 250ms ease-in-out;
}
@media only screen and (min-width: 1024px) {
  .menu__link-icon {
    display: none;
  }
}
.menu__text {
  cursor: default;
}
.menu .sale-color .menu__link,
.menu .sale-color .menu__text {
  color: #E30613;
}
.menu .sale-color .menu__link:hover,
.menu .sale-color .menu__text:hover {
  color: #80030b;
}
.menu .new-color .menu__link,
.menu .new-color .menu__text {
  color: #E30613;
}
.menu .new-color .menu__link:hover,
.menu .new-color .menu__text:hover {
  color: #80030b;
}
.menu__item--filter-enumeration {
  line-height: 1.125rem;
  margin-bottom: 0.625rem;
}
.menu__item--footer {
  margin: 1rem 0.5rem 0;
}
@media only screen and (min-width: 768px) {
  .menu__item--footer {
    margin-top: 0;
  }
}
.menu__item--social {
  margin: 0 0.5rem;
}
.menu__item--social:first-child {
  margin-left: 0;
}
.menu__item--social:last-child {
  margin-right: 0;
}
.menu--footer {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  margin: 0 -0.5rem 1.625rem;
  padding: 0 1.25rem;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
@media only screen and (min-width: 550px) {
  .menu--footer {
    margin-bottom: 0;
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    padding: 0;
  }
}
.menu--social {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin-bottom: 1.625rem;
}
@media only screen and (min-width: 768px) {
  .menu--social {
    -webkit-box-pack: left;
        -ms-flex-pack: left;
            justify-content: left;
  }
}
.menu__trigger {
  display: block;
  position: relative;
  padding-right: 1.6875rem;
}
@media only screen and (min-width: 1024px) {
  .menu__trigger {
    position: static;
    padding-right: 0;
  }
}
.menu__trigger-button {
  position: absolute;
  height: 100%;
  width: 1.6875rem;
  right: 0;
  top: 0;
  line-height: 0;
  background: none;
  z-index: 0;
}
@media only screen and (min-width: 1024px) {
  .menu__trigger-button {
    width: 1.25rem;
    right: -1.25rem;
    display: none;
    background: none;
  }
}
.menu__trigger-button-icon {
  position: absolute;
  top: 50%;
  right: 0;
  -webkit-transform: translate(-50%, -50%) rotate(-90deg);
          transform: translate(-50%, -50%) rotate(-90deg);
}
@media only screen and (min-width: 1024px) {
  .menu__trigger-button-icon {
    color: #8f8f8f;
    margin-top: 0.125rem;
    -webkit-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
  }
}
.menu__trigger-button.is-active .menu__trigger-button-icon {
  -webkit-transform: translate(-50%, -50%) rotate(-180deg);
          transform: translate(-50%, -50%) rotate(-180deg);
}
@media only screen and (min-width: 1024px) {
  .menu--lvl-0 {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
}
.menu__item--lvl-0 {
  position: relative;
  padding-left: 0.6875rem;
  z-index: 2;
}
.menu__item--lvl-0:not(:first-child) {
  border-top: solid 0.0625rem #dce0e5;
}
@media only screen and (min-width: 1024px) {
  .menu__item--lvl-0 {
    padding-left: 0;
    border: none;
  }
}
@media only screen and (min-width: 1024px) {
  .menu__item--lvl-0.showed .menu-wrapper--lvl-1 {
    opacity: 1;
    -webkit-transform: scale(1);
            transform: scale(1);
  }
}
.menu__item--lvl-0:last-of-type {
  border: none;
}
@media only screen and (min-width: 1024px) {
  .menu__item--lvl-0:not(:last-child) {
    margin-right: 2.5rem;
  }
}
@media only screen and (min-width: 1204px) {
  .menu__item--lvl-0:not(:last-child) {
    margin-right: 3.75rem;
  }
}
@media only screen and (min-width: 1024px) {
  .menu__item--lvl-0.menu__item--has-children-dropdown::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -1.5625rem;
    -webkit-transform: rotate(45deg) translateX(-50%);
            transform: rotate(45deg) translateX(-50%);
    width: 0.625rem;
    height: 0.625rem;
    border-radius: 2px;
    background: #fff;
    -webkit-transition: opacity 100ms ease-in-out 100ms;
    transition: opacity 100ms ease-in-out 100ms;
    opacity: 0;
  }
}
@media only screen and (min-width: 1024px) {
  .menu__item--lvl-0::before {
    content: "";
    display: none;
    position: absolute;
    left: 50%;
    bottom: 0;
    -webkit-transform: translate(-50%);
            transform: translate(-50%);
    width: 1.875rem;
    height: 0.125rem;
    background: #666666;
  }
  .menu__item--lvl-0:hover::before {
    display: block;
  }
  .menu__item--lvl-0:hover::after {
    opacity: 1;
  }
}
.menu__link--lvl-0, .menu__text--lvl-0 {
  display: block;
  font-weight: 500;
  letter-spacing: 0.0125rem;
  line-height: 3.25rem;
  color: #666666;
}
@media only screen and (min-width: 1024px) {
  .menu__link--lvl-0, .menu__text--lvl-0 {
    padding: 0;
    font-size: 1rem;
    font-weight: 400;
    height: 1rem;
    line-height: 1.125rem;
    letter-spacing: 0;
    -webkit-transition: color 250ms ease-in-out;
    transition: color 250ms ease-in-out;
    margin: 0.5rem 0 0.375rem;
  }
}
.menu__link--lvl-0:hover, .menu__text--lvl-0:hover {
  color: #666666;
}
@media only screen and (min-width: 1024px) {
  .menu-wrapper--lvl-1 {
    padding-top: 0.9375rem;
    position: absolute;
    top: 100%;
    left: -0.625rem;
    -webkit-transition: -webkit-transform 250ms ease-in-out;
    transition: -webkit-transform 250ms ease-in-out;
    transition: transform 250ms ease-in-out;
    transition: transform 250ms ease-in-out, -webkit-transform 250ms ease-in-out;
    -webkit-transform-origin: top left;
            transform-origin: top left;
    -webkit-transform: scale(0);
            transform: scale(0);
    width: 35rem;
  }
}
@media only screen and (min-width: 1204px) {
  .menu-wrapper--lvl-1 {
    width: 40.625rem;
  }
}
@media only screen and (min-width: 1300px) {
  .menu-wrapper--lvl-1 {
    left: -1.75rem;
    width: 45rem;
  }
}
.menu--lvl-1 {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap;
  padding-bottom: 0.75rem;
}
@media only screen and (min-width: 1024px) {
  .menu--lvl-1 {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    padding: 1.25rem 1.25rem 0.9375rem;
    background-color: #fff;
    border-radius: 2px;
    -webkit-box-shadow: 0 1.125rem 1.125rem 0 rgba(0, 0, 0, 0.05), 0 0.1875rem 0.1875rem 0 rgba(0, 0, 0, 0.05);
            box-shadow: 0 1.125rem 1.125rem 0 rgba(0, 0, 0, 0.05), 0 0.1875rem 0.1875rem 0 rgba(0, 0, 0, 0.05);
  }
}
@media only screen and (min-width: 1300px) {
  .menu--lvl-1 {
    padding: 2.375rem 2.4375rem 2.6875rem;
  }
}
@media only screen and (min-width: 1024px) {
  .menu__item--lvl-1 {
    margin-bottom: 1.25rem;
    width: 33.33333%;
    min-width: 33.33333%;
  }
}
@media only screen and (min-width: 1300px) {
  .menu__item--lvl-1 {
    width: 25%;
    min-width: 25%;
  }
}
.menu__link--lvl-1, .menu__text--lvl-1 {
  display: block;
  font-size: 1rem;
  line-height: 2.625rem;
  letter-spacing: 0.0125rem;
  color: #666666;
}
@media only screen and (min-width: 1024px) {
  .menu__link--lvl-1, .menu__text--lvl-1 {
    display: inline-block;
    font-size: 1.0625rem;
    font-weight: 500;
    line-height: 1.625rem;
    letter-spacing: 0;
    color: #666666;
  }
}
.menu__link--lvl-1:hover {
  color: #8f8f8f;
}
.menu__trigger-button--lvl-1 {
  color: #666666;
}
.menu__trigger-button--lvl-1.is-active::after {
  content: "";
  position: absolute;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  top: 0;
  width: 62.4375rem;
  height: 100%;
  background: #f0f0f0;
  z-index: -1;
}
@media only screen and (min-width: 1024px) {
  .menu__trigger-button--lvl-1.is-active::after {
    display: none;
  }
}
.menu--lvl-2 {
  padding-bottom: 0.625rem;
}
@media only screen and (min-width: 1024px) {
  .menu--lvl-2 {
    padding-bottom: 0;
  }
}
@media only screen and (min-width: 1024px) {
  .menu__item--lvl-2 {
    padding: 0.1875rem 0;
  }
}
.menu__link--lvl-2, .menu__text--lvl-2 {
  display: block;
  padding: 0 1.25rem;
  font-size: 0.9375rem;
  line-height: 2.625rem;
  font-weight: 400;
  letter-spacing: 0.0125rem;
  color: #8f8f8f;
}
@media only screen and (min-width: 1024px) {
  .menu__link--lvl-2, .menu__text--lvl-2 {
    display: inline-block;
    line-height: normal;
    letter-spacing: 0;
    padding: 0;
  }
}
.menu__link--lvl-2:hover {
  color: #666666;
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/money-price/money-price.scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.money-price {
  display: block;
}
.money-price__amount {
  font-size: 1.125rem;
}
.money-price__amount--original {
  font-size: 0.875rem;
  display: block;
  color: #8f8f8f;
  text-decoration: line-through;
}
.money-price__tag {
  margin-right: 0.25rem;
  color: #E30613;
}
.money-price--asterisks .money-price__amount:after {
  content: "*";
  margin-left: 3px;
}
.money-price__amount {
  font-size: 1rem;
}
.money-price__amount--has-original-price {
  color: #6CA52F;
}
.money-price__amount--original {
  font-size: 0.8125rem;
  color: #666666;
}
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/navigation-icon-list/navigation-icon-list.scss ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.navigation-icon-list__icon {
  color: #8f8f8f;
}
.navigation-icon-list--social {
  text-align: center;
}
@media only screen and (min-width: 768px) {
  .navigation-icon-list--social {
    text-align: left;
  }
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/navigation-multilevel/navigation-multilevel-styles.scss ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.menu__item--external {
  -webkit-box-shadow: 0 6px 8px 0 rgba(0, 0, 0, 0.09);
          box-shadow: 0 6px 8px 0 rgba(0, 0, 0, 0.09);
  margin-left: auto;
}
@media only screen and (max-width: 1024px) {
  .menu__item--external {
    display: none;
  }
}
.menu__item--external .menu__link {
  background: #666666;
  color: #fff;
  height: 1.9375rem;
  margin: 0;
  padding: 0.5rem 0.4375rem 0.375rem;
}
.menu__item--external .menu__link .fa-external-link {
  font-size: 0.75rem;
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/shop-ui/src/SprykerShop/Yves/ShopUi/Theme/default/components/molecules/navigation-multiview-list/style.scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.navigation-multiview-list__icon {
  color: #8f8f8f;
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/pagination/pagination.scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.pagination {
  font-size: 0.875rem;
  text-align: center;
  margin-top: 0.4375rem;
}
@media only screen and (min-width: 768px) {
  .pagination {
    margin-top: 2.5rem;
  }
}
.pagination__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.pagination__item {
  display: inline-block;
  vertical-align: middle;
}
.pagination__step {
  -webkit-transition: color 250ms ease-in-out;
  transition: color 250ms ease-in-out;
  display: inline-block;
  padding: 0.25rem 0.5rem;
  color: #666666;
  min-width: 2.125rem;
  line-height: 1.625rem;
}
.pagination__step i {
  display: block;
}
.pagination__step--button {
  background: #fff;
  border: 1px solid #B3B3B3;
  margin-left: 0.125rem;
  margin-right: 0.125rem;
}
@media only screen and (min-width: 550px) {
  .pagination__step--button {
    margin-left: 0.25rem;
    margin-right: 0.25rem;
  }
}
.pagination__step--button:hover, .pagination__step--button:focus {
  color: #666666;
}
.pagination__step--current {
  background-color: #F8F8F8;
}
.pagination__step--previous, .pagination__step--next {
  font-size: 1.25rem;
  min-width: 1.25rem;
  vertical-align: middle;
}
.pagination__step--previous:hover, .pagination__step--previous:focus, .pagination__step--next:hover, .pagination__step--next:focus {
  color: #666666;
}
.pagination__step--disabled, .pagination__step--disabled:hover, .pagination__step--disabled:focus {
  color: #E7E7E7;
}
.pagination--search-cms-results {
  margin-bottom: 3.75rem;
}
@media only screen and (min-width: 1024px) {
  .pagination--search-cms-results {
    margin-bottom: 6.875rem;
  }
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/shop-ui/src/SprykerShop/Yves/ShopUi/Theme/default/components/molecules/password-complexity-indicator/style.scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.password-complexity-indicator__indicator-item {
  display: inline-block;
  width: 3.125rem;
  height: 0.25rem;
  border-radius: 0.125rem;
  margin-right: 0.3125rem;
  background: #f0f0f0;
}
.password-complexity-indicator__indicator-list--weak {
  color: #E30613;
}
.password-complexity-indicator__indicator-list--weak .password-complexity-indicator__indicator-item:nth-child(1) {
  background-color: #E30613;
}
.password-complexity-indicator__indicator-list--weak .password-complexity-indicator__message::before {
  content: attr(data-weak);
}
.password-complexity-indicator__indicator-list--medium {
  color: #fdbe36;
}
.password-complexity-indicator__indicator-list--medium .password-complexity-indicator__indicator-item:nth-child(1) {
  background-color: #fdbe36;
}
.password-complexity-indicator__indicator-list--medium .password-complexity-indicator__indicator-item:nth-child(2) {
  background-color: #fdbe36;
}
.password-complexity-indicator__indicator-list--medium .password-complexity-indicator__message::before {
  content: attr(data-medium);
}
.password-complexity-indicator__indicator-list--strong {
  color: #1ebea0;
}
.password-complexity-indicator__indicator-list--strong .password-complexity-indicator__indicator-item:nth-child(1) {
  background-color: #1ebea0;
}
.password-complexity-indicator__indicator-list--strong .password-complexity-indicator__indicator-item:nth-child(2) {
  background-color: #1ebea0;
}
.password-complexity-indicator__indicator-list--strong .password-complexity-indicator__indicator-item:nth-child(3) {
  background-color: #1ebea0;
}
.password-complexity-indicator__indicator-list--strong .password-complexity-indicator__message::before {
  content: attr(data-strong);
}
.password-complexity-indicator__indicator-list--very-strong {
  color: #1ebea0;
}
.password-complexity-indicator__indicator-list--very-strong .password-complexity-indicator__indicator-item:nth-child(1) {
  background-color: #1ebea0;
}
.password-complexity-indicator__indicator-list--very-strong .password-complexity-indicator__indicator-item:nth-child(2) {
  background-color: #1ebea0;
}
.password-complexity-indicator__indicator-list--very-strong .password-complexity-indicator__indicator-item:nth-child(3) {
  background-color: #1ebea0;
}
.password-complexity-indicator__indicator-list--very-strong .password-complexity-indicator__indicator-item:nth-child(4) {
  background-color: #1ebea0;
}
.password-complexity-indicator__indicator-list--very-strong .password-complexity-indicator__message::before {
  content: attr(data-very-strong);
}
.password-complexity-indicator__message {
  display: inline-block;
  vertical-align: middle;
}
.password-complexity-indicator__additional-message {
  display: none;
  font-size: 0.875rem;
  color: #777777;
}
.password-complexity-indicator__additional-message--weak, .password-complexity-indicator__additional-message--medium, .password-complexity-indicator__additional-message--strong {
  display: block;
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/shop-ui/src/SprykerShop/Yves/ShopUi/Theme/default/components/molecules/password-field/style.scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.password-field {
  position: relative;
}
.password-field .password-field__input {
  padding-right: 1.875rem;
}
.password-field .password-field__icon-hide {
  display: none;
}
.password-field__button {
  position: absolute;
  top: 0;
  right: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 1.875rem;
  height: 100%;
  color: #777777;
  cursor: pointer;
  border: none;
  background: none;
}
.password-field__button:hover, .password-field__button:focus {
  color: #333333;
}
.password-field__button--shown .password-field__icon-show {
  display: none;
}
.password-field__button--shown .password-field__icon-hide {
  display: inline-block;
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/price/price.scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.price {
  display: block;
}
.price__amount {
  font-size: 1.125rem;
}
.price__amount--original {
  font-size: 0.875rem;
  display: block;
  color: #8f8f8f;
  text-decoration: line-through;
}
.price__tag {
  margin-right: 0.25rem;
  color: #E30613;
}
.price {
  display: block;
}
.price--pdp {
  margin-bottom: 1.4375rem;
}
.price--cart {
  margin: 0 0 15px;
}
.price--catalog-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  margin-bottom: 0.625rem;
}
.price--available {
  margin: 0;
}
@media only screen and (min-width: 768px) {
  .price--available {
    margin: 0 0 15px;
  }
}
.price--summary {
  margin: 0;
}
.price__amount {
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.2;
  color: #666666;
}
@media only screen and (min-width: 768px) {
  .price__amount {
    font-size: 1.125rem;
  }
}
.price__amount--hide {
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
}
.price__amount--pdp {
  font-size: 1.5rem;
  font-weight: 500;
  line-height: normal;
}
@media only screen and (min-width: 768px) {
  .price__amount--pdp {
    font-size: 1.625rem;
  }
}
.price__amount--cart {
  font-size: 1.125rem;
  font-weight: 500;
  line-height: normal;
  color: #666666;
}
.price__amount--catalog {
  color: #666666;
}
.price__amount--green {
  color: #6CA52F;
}
.price__amount--asterisks:after {
  content: "*";
  margin-left: 3px;
}
.price__amount--original {
  font-size: 0.9375rem;
  display: inline-block;
  color: #666666;
  font-weight: 400;
}
@media only screen and (max-width: 767px) {
  .price__amount--original.price__amount--pdp {
    font-size: 1.5rem;
    margin-right: 0.25rem;
  }
}
.price__amount--alt {
  color: #E30613;
  margin-right: 0.25rem;
}
@media only screen and (min-width: 550px) {
  .price__amount--alt.price__amount--catalog-list {
    margin-right: 0;
  }
}
.price__mode {
  display: inline;
  color: #666666;
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 0.75rem;
  margin-left: 0;
}
@media only screen and (min-width: 768px) {
  .price__mode {
    margin-left: 0.3125rem;
    font-size: 0.75rem;
  }
}
.price__mode--pdp {
  font-size: 0.8125rem;
  line-height: normal;
}
.price__mode--pdp, .price__mode--cart, .price__mode--catalog-list {
  display: block;
  margin-left: 0;
}
.price__mode--block {
  display: block;
}
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/product-card/product-card.scss ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
/* stylelint-disable */
.product-card {
  position: relative;
}
.product-card__container {
  position: relative;
  padding-bottom: 2.5rem;
}
.product-card__actions-container {
  position: absolute;
  bottom: 0.5rem;
  left: 0.5rem;
  right: 0.5rem;
  margin: auto;
}
.product-card--stretch {
  height: 100%;
}
.product-card__container {
  padding-bottom: 3.5rem;
}
.product-card {
  height: auto;
  padding: 0 0 1.875rem;
}
@media only screen and (max-width: 769px) {
  .product-card {
    padding-bottom: 0;
  }
}
.product-card {
  color: #666666;
  font-size: 1.125rem;
  line-height: 1.5rem;
}
@media only screen and (max-width: 549px) {
  .product-card {
    font-size: 1.25rem;
    line-height: 1.625rem;
  }
}
.product-card--equal-height {
  height: auto;
}
.product-card--full-height {
  height: 100%;
}
.product-card--cms, .product-card--slider {
  height: 100%;
}
.product-card--cms .product-card__container, .product-card--slider .product-card__container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  float: left;
  width: 100%;
  text-align: center;
}
.product-card--cms .price__mode, .product-card--slider .price__mode {
  float: left;
  width: 100%;
}
.product-card__container {
  background: #fff;
  padding: 1rem;
  height: 100%;
  min-height: 25rem;
}
@media only screen and (max-width: 549px) {
  .product-card__container {
    padding: 1rem 2.5rem;
  }
}
.product-card__container--catalog {
  padding: 0 0.875rem 1.625rem;
}
.product-card__container--cart {
  text-align: center;
}
.product-card__container--cart__price {
  float: left;
  margin-bottom: 0.625rem;
  width: 100%;
}
.product-card__container--cart .price__mode {
  float: left;
  margin-left: 0;
  width: 100%;
}
.product-card__container--product-set {
  padding: 0 0.875rem 1.625rem;
}
.product-card__container--stretch {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: baseline;
      -ms-flex-align: baseline;
          align-items: baseline;
}
.product-card__image-wrap {
  position: relative;
  margin: 0 -0.875rem 0.9375rem;
  padding: 0.5rem 0.875rem;
  -ms-flex-preferred-size: 100%;
      flex-basis: 100%;
}
.product-card__image-wrap--product-set {
  max-height: 15.1875rem;
}
.product-card__image-wrap--catalog::before {
  -webkit-transition: background-color 250ms ease-in-out, -webkit-box-shadow 250ms ease-in-out;
  transition: background-color 250ms ease-in-out, -webkit-box-shadow 250ms ease-in-out;
  transition: box-shadow 250ms ease-in-out, background-color 250ms ease-in-out;
  transition: box-shadow 250ms ease-in-out, background-color 250ms ease-in-out, -webkit-box-shadow 250ms ease-in-out;
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(0, 0, 0, 0.05);
  z-index: 1;
}
.product-card__no-image {
  color: #666666;
  font-size: 2.5rem;
  margin: 0 auto;
}
.product-card__no-image-wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin-bottom: 1.25rem;
}
.product-card__badge {
  width: 6rem;
  height: 6rem;
  position: absolute;
  right: 1rem;
  top: 1rem;
  z-index: 1;
}
.product-card__overlay {
  color: #666666;
  font-size: 1.25rem;
  font-weight: 500;
  line-height: 1.5625rem;
  letter-spacing: 0.0125rem;
}
.product-card__overlay--catalog {
  color: #666666;
  display: block;
  min-height: 4.0625rem;
  margin-bottom: 0.375rem;
}
@media only screen and (max-width: 549px) {
  .product-card__overlay--catalog {
    min-height: 5.0625rem;
  }
}
.product-card__overlay--product-set {
  font-size: 1rem;
  line-height: normal;
  letter-spacing: 0.00625rem;
}
.product-card__overlay--cms, .product-card__overlay--slider {
  margin-bottom: 1.5625rem;
}
.product-card__info {
  max-width: 100%;
}
.product-card__variant {
  margin: 0.5rem 0 0.625rem;
  position: relative;
  z-index: 3;
}
@media only screen and (min-width: 768px) {
  .product-card__variant {
    margin-bottom: 1.5rem;
  }
}
.product-card__category {
  display: block;
  line-height: 1.25rem;
  letter-spacing: 0.0125rem;
  font-weight: 400;
  color: #8f8f8f;
  margin-top: 0.1875rem;
}
@media only screen and (min-width: 768px) {
  .product-card__category {
    font-size: 1rem;
    line-height: 1.25rem;
  }
}
.product-card__rating {
  margin-top: 0.6875rem;
}
.product-card__price {
  display: inline-block;
  margin: 0.375rem 0 0 0;
}
.product-card__price--cms, .product-card__price--slider {
  -ms-flex-item-align: end;
      align-self: flex-end;
  margin-top: auto;
  width: 100%;
}
.product-card__actions {
  position: relative;
  z-index: 2;
}
.product-card__detail-button {
  display: block;
  margin-top: 0.625rem;
}
.product-card__footer .price-fetcher {
  display: none;
}
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/product-item/product-item.scss ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.product-item {
  border: 0.125rem solid #f0f0f0;
  border-radius: 2px;
  padding: 0.75rem;
  margin-bottom: 0.625rem;
  position: relative;
}
@media only screen and (min-width: 550px) {
  .product-item {
    padding-right: 1.375rem;
  }
}
@media only screen and (min-width: 768px) {
  .product-item {
    padding: 0;
    margin-bottom: 1.25rem;
  }
}
.product-item--shopping-list-available {
  padding-bottom: 4.6875rem;
}
@media only screen and (min-width: 768px) {
  .product-item--shopping-list-available {
    padding-bottom: 0;
  }
}
.product-item__col {
  padding-top: 0.5rem;
  padding-bottom: 0.75rem;
}
@media only screen and (min-width: 768px) {
  .product-item__col {
    padding-top: 2.25rem;
    padding-bottom: 1.75rem;
  }
}
.product-item__col--image {
  position: relative;
  border-radius: 2px 0 0 2px;
  padding-top: 0;
  padding-bottom: 0;
  width: 4.875rem;
  min-width: 4.875rem;
}
@media only screen and (min-width: 550px) {
  .product-item__col--image {
    width: 22%;
    min-width: 22%;
  }
}
.product-item__col--total {
  padding-top: 0;
  padding-bottom: 0;
  width: 100%;
  min-width: 100%;
}
@media only screen and (min-width: 768px) {
  .product-item__col--total {
    padding-top: 2.25rem;
    padding-bottom: 1.75rem;
    width: 34%;
    min-width: 34%;
    text-align: right;
  }
}
@media only screen and (min-width: 768px) {
  .product-item .product-item__col--total {
    padding-left: 0;
    padding-right: calc(30px + 15px);
  }
}
.product-item__col--content {
  width: 100%;
  min-width: 100%;
}
@media only screen and (min-width: 768px) {
  .product-item__col--content {
    width: 64%;
    min-width: 64%;
  }
}
@media only screen and (min-width: 768px) {
  .product-item__col--summary:not(.product-item__col--image) {
    padding-top: 1.75rem;
    padding-bottom: 1.25rem;
  }
}
.product-item__col--description {
  padding-top: 0;
  padding-bottom: 0;
  width: calc(100% - 4.875rem);
  min-width: calc(100% - 4.875rem);
}
@media only screen and (min-width: 550px) {
  .product-item__col--description {
    width: 78%;
    min-width: 78%;
  }
}
.product-item__col--description.product-item__col--summary {
  padding-top: 0;
  padding-bottom: 0;
}
.product-item__col--shopping-list:not(.product-item__col--image) {
  padding-bottom: 1.25rem;
  padding-top: 0;
}
@media only screen and (min-width: 768px) {
  .product-item__col--shopping-list:not(.product-item__col--image) {
    padding-bottom: 1.75rem;
    padding-top: 1.75rem;
  }
}
.product-item__col--shopping-list:not(.product-item__col--image):last-child {
  padding-bottom: 0;
}
@media only screen and (min-width: 768px) {
  .product-item__col--shopping-list:not(.product-item__col--image):last-child {
    padding-bottom: 1.25rem;
  }
}
.product-item__col--shopping-list-alternative {
  width: 69%;
  min-width: 69%;
}
@media only screen and (min-width: 768px) {
  .product-item__col--shopping-list-alternative {
    width: 78%;
    min-width: 78%;
  }
}
.product-item__col--shopping-list-alternative.product-item__col--image {
  width: 31%;
  min-width: 31%;
}
@media only screen and (min-width: 768px) {
  .product-item__col--shopping-list-alternative.product-item__col--image {
    width: 22%;
    min-width: 22%;
  }
}
.product-item__col--shopping-list-alternative.product-item__col--content {
  width: 100%;
  min-width: 100%;
}
@media only screen and (min-width: 768px) {
  .product-item__col--shopping-list-alternative.product-item__col--content {
    width: 58%;
    min-width: 58%;
  }
}
.product-item__col--shopping-list-alternative.product-item__col--total {
  width: 100%;
  min-width: 100%;
}
@media only screen and (min-width: 768px) {
  .product-item__col--shopping-list-alternative.product-item__col--total {
    width: 42%;
    min-width: 42%;
  }
}
.product-item__col--hidden:not(.product-item__col--content) {
  opacity: 0.5;
}
.product-item__inner--full-height {
  height: 100%;
}
.product-item__inner--total {
  -webkit-box-orient: vertical;
  -webkit-box-direction: reverse;
      -ms-flex-direction: column-reverse;
          flex-direction: column-reverse;
}
@media only screen and (min-width: 768px) {
  .product-item__inner--total {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: flex-end;
  }
}
.product-item__inner--actions {
  padding-bottom: 0.375rem;
}
@media only screen and (min-width: 768px) {
  .product-item__inner--actions {
    padding-bottom: 0;
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: flex-end;
  }
}
.product-item__title {
  font-size: 0.875rem;
  font-weight: 500;
  line-height: normal;
  color: #666666;
  margin-bottom: 0;
  display: block;
  height: 47.2px;
  overflow: hidden;
  text-overflow: ellipsis;
  -webkit-line-clamp: 2;
  display: -webkit-box;
  -webkit-box-orient: vertical;
}
@media only screen and (min-width: 768px) {
  .product-item__title {
    font-size: 1.25rem;
    margin-bottom: 0.5rem;
  }
}
.product-item__title--shopping-list-alternative {
  font-size: 0.75rem;
}
@media only screen and (min-width: 768px) {
  .product-item__title--shopping-list-alternative {
    font-size: 1rem;
  }
}
.product-item__title--hidden {
  opacity: 0.5;
}
.product-item__color {
  display: inline-block;
  width: 0.875rem;
  height: 0.875rem;
  border-radius: 50%;
  margin-left: 0.25rem;
  text-indent: -624.9375rem;
  vertical-align: middle;
}
.product-item__color-preview {
  display: inline-block;
  margin-top: 0.9375rem;
  position: relative;
  font-size: 0.8125rem;
  font-weight: 500;
  color: #666666;
  padding-right: 1.3125rem;
  line-height: 1.3125rem;
}
@media only screen and (min-width: 768px) {
  .product-item__color-preview {
    margin-top: 0.625rem;
    font-size: 0.875rem;
  }
}
.product-item__color-preview-decoration {
  position: absolute;
  right: 0;
  top: 0.1875rem;
  width: 0.9375rem;
  height: 0.9375rem;
  border-radius: 50%;
  border: 0.0625rem solid #dce0e5;
}
.product-item__available {
  display: inline-block;
  color: #E30613;
  font-weight: 500;
  line-height: normal;
  margin-bottom: 0.5rem;
}
.product-item--fixed-input {
  max-width: 8.625rem;
  margin-bottom: 1.875rem;
  text-align: right;
}
.product-item--shopping-list-alternative {
  margin-bottom: 0.625rem;
}
.product-item__checkbox {
  height: 100%;
}
@media only screen and (min-width: 769px) {
  .product-item__checkbox-col {
    background-color: rgba(0, 0, 0, 0.05);
    padding-left: 0.75rem;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
        align-items: center;
    position: static;
    padding-bottom: 1.25rem;
  }
}
.product-item__checkbox-col--shopping-list {
  position: absolute;
  right: 0;
  top: 0;
  background: rgba(255, 255, 255, 0);
}
@media only screen and (min-width: 768px) {
  .product-item__checkbox-col--shopping-list {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    position: static;
    background-color: rgba(0, 0, 0, 0.05);
    padding-bottom: 1.25rem;
  }
}
.product-item__quantity-holder {
  padding-bottom: 1rem;
}
@media only screen and (min-width: 768px) {
  .product-item__quantity-holder {
    padding-bottom: 0;
  }
}
.product-item__quantity {
  margin-top: 0.8125rem;
  font-size: 0.8125rem;
  color: #666666;
}
@media only screen and (min-width: 768px) {
  .product-item__quantity {
    font-size: 0.875rem;
  }
}
.product-item__quantity-title {
  color: #666666;
  font-weight: 500;
}
.product-item__delete-cart {
  position: absolute;
  bottom: 2rem;
  right: 0.375rem;
}
@media only screen and (min-width: 768px) {
  .product-item__delete-cart {
    position: static;
  }
}
.product-item__remove-button {
  margin-top: -3rem;
}
@media only screen and (min-width: 768px) {
  .product-item__remove-button {
    margin: 0;
  }
}
.product-item__remove-button-text {
  display: none;
}
@media only screen and (min-width: 768px) {
  .product-item__remove-button-text {
    display: inline-block;
  }
}
.product-item__badge {
  width: 5rem;
  height: 5rem;
  position: absolute;
  right: 0.5rem;
  top: 0.5rem;
  z-index: 1;
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/shop-ui/src/SprykerShop/Yves/ShopUi/Theme/default/components/molecules/product-item-list/style.scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.product-item-list {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  flex-direction: row;
}
.product-item-list__name {
  font-weight: 500;
  color: #666666;
}
.product-item-list__actions {
  margin-top: 1rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}
.product-item-list__actions--spacingless {
  margin-top: 0;
}
.product-item-list__actions-row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
}
.product-item-list__actions {
  -webkit-box-flex: 0;
      -ms-flex-positive: 0;
          flex-grow: 0;
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/product-list-item/product-list-item.scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.product-list-item {
  position: relative;
}
.product-list-item__container {
  position: relative;
}
.product-list-item__overlay {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  min-height: 10rem;
}
@media only screen and (min-width: 549px) {
  .product-list-item__overlay {
    min-height: unset;
    height: 100%;
  }
}
.product-list-item__overlay .thumbnail {
  width: 100%;
}
.product-list-item__container {
  -webkit-transition: background-color 250ms ease-in-out, -webkit-box-shadow 250ms ease-in-out;
  transition: background-color 250ms ease-in-out, -webkit-box-shadow 250ms ease-in-out;
  transition: box-shadow 250ms ease-in-out, background-color 250ms ease-in-out;
  transition: box-shadow 250ms ease-in-out, background-color 250ms ease-in-out, -webkit-box-shadow 250ms ease-in-out;
  background-color: #fff;
  margin-bottom: 1.25rem;
  border-radius: 2px;
}
.product-list-item__image {
  background-color: #fff;
  padding: 0.5rem 1rem;
  position: relative;
}
@media only screen and (max-width: 549px) {
  .product-list-item__image {
    -ms-flex-preferred-size: 100%;
        flex-basis: 100%;
  }
}
.product-list-item__no-image {
  color: #666666;
  font-size: 2.5rem;
  margin: 0 auto;
}
.product-list-item__badge {
  width: 4.5rem;
  height: 4.5rem;
  position: absolute;
  right: 1rem;
  top: 1rem;
  z-index: 1;
}
.product-list-item__project-request-product {
  color: #6CA52F;
}
.product-list-item__content {
  background-color: #fff;
  min-height: 9.375rem;
  padding: 1.25rem 1.875rem 1.25rem 1.25rem;
  position: relative;
}
@media only screen and (max-width: 549px) {
  .product-list-item__content {
    -ms-flex-preferred-size: 100%;
        flex-basis: 100%;
    background-color: #E7E7E7;
  }
}
.product-list-item__attributes {
  margin-top: 1.25rem;
  font-size: 15px;
  line-height: 20px;
}
@media only screen and (max-width: 549px) {
  .product-list-item__attributes {
    display: none;
  }
}
.product-list-item__attributes td {
  color: #666666;
}
.product-list-item__attributes td:first-child {
  padding-right: 0.9375rem;
}
.product-list-item__attributes .fa-check {
  color: #6CA52F;
}
.product-list-item__attributes .fa-times {
  color: #E30613;
}
.product-list-item__total {
  background-color: #E7E7E7;
  color: #666666;
  padding: 1.25rem 1.25rem 1.25rem 1.25rem;
}
@media only screen and (max-width: 549px) {
  .product-list-item__total {
    -ms-flex-preferred-size: 100%;
        flex-basis: 100%;
    padding-top: 0;
  }
}
@media only screen and (min-width: 1204px) {
  .product-list-item__total {
    padding: 1.25rem 0.9375rem;
  }
}
.product-list-item__total-action {
  color: #666666;
  font-size: 15px;
}
.product-list-item__total-action i {
  width: 20px;
}
.product-list-item__compare-add {
  color: #666666;
}
.product-list-item__inner--total {
  font-size: 0.9375rem;
}
.product-list-item__name {
  color: #666666;
  font-size: 1.25rem;
  font-weight: 500;
  line-height: normal;
  letter-spacing: 0.00625rem;
}
.product-list-item__actions {
  font-size: 0.9375rem;
  margin-top: 0.625rem;
}
.product-list-item__actions-align-bottom {
  height: 100%;
  margin: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}
.product-list-item__variant-action {
  font-size: 1rem;
}
.product-list-item__login-notice i {
  color: #E30613;
}
.product-list-item__login-notice a {
  color: #666666;
  text-decoration: underline;
}
.product-list-item__login-notice a:hover {
  color: #E30613;
}
.product-list-item .icon.select__caret {
  display: none;
}
.product-list-item .pr5 {
  padding-right: 0.3125rem;
}
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/quote-status/quote-status.scss ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.quote-status {
  border-radius: 1rem;
  padding: 0.25rem 1rem;
  font-size: 0.75rem;
}
.quote-status--waiting {
  background-color: rgba(254, 206, 104, 0.3);
  color: #fdbe36;
}
.quote-status--approved {
  background-color: rgba(49, 222, 190, 0.3);
  color: #1ebea0;
}
.quote-status--declined {
  background-color: rgba(249, 35, 47, 0.3);
  color: #E30613;
}
.quote-status--small {
  padding: 0 0.5rem;
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/search-form/search-form.scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.search-form__button {
  position: absolute;
  top: 0;
  right: 0;
  height: 100%;
  padding: 0;
  border: none;
  background: none;
  color: #666666;
  width: 2.6875rem;
  z-index: 703;
}
@media only screen and (min-width: 1024px) {
  .search-form__button {
    background: #E30613;
  }
}
.search-form__button:hover, .search-form__button:focus {
  filter: alpha(opacity=50);
  opacity: 0.5;
}
.search-form__button--clear {
  right: 3.3125rem;
  color: #000;
  background-color: #dce0e5;
  border-radius: 1.25rem;
  height: 1.5rem;
  width: 1.5rem;
  top: 1.25rem;
}
@media only screen and (min-width: 1024px) {
  .search-form__button--clear {
    top: 0.375rem;
  }
}
.search-form__button--clear:disabled {
  display: none;
}
.search-form__button--submit {
  background-color: #E30613;
}
@media only screen and (min-width: 1024px) {
  .search-form__button--submit {
    left: inherit;
  }
}
.search-form__button--submit .icon {
  width: 1.25rem;
  height: 1.25rem;
  fill: #fff;
  stroke: #fff;
}
@media only screen and (min-width: 1024px) {
  .search-form__button--submit .icon {
    width: 1rem;
    height: 1rem;
    fill: #fff;
    stroke: #fff;
  }
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/shop-ui/src/SprykerShop/Yves/ShopUi/Theme/default/components/molecules/simple-carousel/style.scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.simple-carousel__container {
  position: relative;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}
.simple-carousel__view {
  position: relative;
  max-width: 100%;
  overflow: hidden;
  z-index: 1;
}
.simple-carousel__slider {
  -webkit-transition: -webkit-transform 500ms ease-in-out;
  transition: -webkit-transform 500ms ease-in-out;
  transition: transform 500ms ease-in-out;
  transition: transform 500ms ease-in-out, -webkit-transform 500ms ease-in-out;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
}
.simple-carousel__dots {
  text-align: center;
  line-height: 0;
}
.simple-carousel__dot {
  display: inline-block;
  padding: 0.25rem;
}
.simple-carousel__dot::before {
  -webkit-transition: background-color 150ms ease-in-out;
  transition: background-color 150ms ease-in-out;
  content: "";
  display: block;
  width: 0.5rem;
  height: 0.5rem;
  background-color: #dadada;
  border-radius: 100%;
}
.simple-carousel__dot:hover::before, .simple-carousel__dot--current::before {
  background-color: #E30613;
}
.simple-carousel__navigation {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  position: absolute;
  top: 0;
  bottom: 0;
  z-index: 2;
  pointer-events: none;
}
.simple-carousel__navigation--prev {
  left: 0;
}
.simple-carousel__navigation--next {
  right: 0;
}
.simple-carousel__arrow {
  -webkit-transition: color 250ms ease-in-out;
  transition: color 250ms ease-in-out;
  color: #dadada;
  pointer-events: all;
}
.simple-carousel__arrow:hover {
  color: #E30613;
}
.simple-carousel--inset .simple-carousel__container {
  padding-left: 0;
  padding-right: 0;
}
.simple-carousel--inset .simple-carousel__navigation {
  width: auto;
}
.simple-carousel--inset .simple-carousel__arrow {
  padding: 0.5rem;
  background-color: rgba(244, 244, 244, 0.75);
}
@media only screen and (min-width: 770px) {
  .simple-carousel__navigation {
    pointer-events: none;
    visibility: hidden;
    opacity: 0;
    -webkit-transition: visibility 250ms ease-in-out, opacity 250ms ease-in-out;
    transition: visibility 250ms ease-in-out, opacity 250ms ease-in-out;
  }
  .simple-carousel:hover .simple-carousel__navigation {
    pointer-events: all;
    visibility: visible;
    opacity: 1;
    pointer-events: none;
  }
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/shop-ui/src/SprykerShop/Yves/ShopUi/Theme/default/components/molecules/single-button-form/style.scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.single-button-form__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.single-button-form__button:hover, .single-button-form__button:focus {
  text-decoration: underline;
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/shop-ui/src/SprykerShop/Yves/ShopUi/Theme/default/components/molecules/status/style.scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.status {
  font-size: 0.875rem;
  display: inline-block;
  padding: 0.1rem 0.5rem;
  background-color: #fc9fa5;
  color: #b1050f;
}
.status--hollow {
  border: 1px solid #dadada;
  background: none;
  color: #8f8f8f;
}
.status--success {
  background-color: #9ff0e1;
  color: #17927b;
}
.status--warning {
  background-color: #fff7e7;
  color: #fcae04;
}
.status--alert {
  background-color: #fc9fa5;
  color: #b1050f;
}
.status--rejected, .status--in-progress, .status--refunded {
  background-color: #fc9fa5;
  color: #b1050f;
}
.status--approved, .status--ready, .status--paid, .status--delivered, .status--configured {
  background-color: #9ff0e1;
  color: #17927b;
}
.status--pending, .status--waiting, .status--payment-pending, .status--confirmed, .status--sent-to-merchant, .status--shipped-by-merchant, .status--exported, .status--not-configured {
  background-color: #fff7e7;
  color: #fcae04;
}
.status--closed {
  background-color: #8c8c8c;
  color: #1a1a1a;
}
.status--canceled, .status--ready-for-return, .status--returned, .status--waiting-for-return, .status--return-canceled {
  background-color: #d0d0d0;
  color: #5e5e5e;
}
.status--draft {
  background-color: #fc9fa5;
  color: #b1050f;
}
.status--text-bold {
  font-weight: 500;
}
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/suggest-search/suggest-search.scss ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.suggest-search__container {
  position: absolute;
  top: 100%;
  left: 0;
  margin: -0.1875rem 0 0 0;
  padding: 0 1rem 0 1.25rem;
  border-top: 1px solid #E7E7E7;
  border-radius: 0 0 2px 2px;
  background: #fff;
  -webkit-box-shadow: 0 18px 18px 0 rgba(0, 0, 0, 0.05), 0 3px 3px 0 rgba(0, 0, 0, 0.05);
          box-shadow: 0 18px 18px 0 rgba(0, 0, 0, 0.05), 0 3px 3px 0 rgba(0, 0, 0, 0.05);
  width: 100%;
  max-height: 18.75rem;
  overflow-x: hidden;
  z-index: 703;
}
.suggest-search__container::before, .suggest-search__container::after {
  content: "";
  display: block;
  position: sticky;
  height: 0.375rem;
  width: 100%;
  background: #fff;
  z-index: 500;
}
@media only screen and (min-width: 768px) {
  .suggest-search__container {
    max-height: 30rem;
    padding-left: 1.5rem;
    padding-right: 0.875rem;
  }
  .suggest-search__container::before, .suggest-search__container::after {
    height: 0.75rem;
  }
  .suggest-search__container::before {
    top: 0;
  }
  .suggest-search__container::after {
    bottom: 0;
  }
  .suggest-search__container > .grid {
    -webkit-box-align: normal;
        -ms-flex-align: normal;
            align-items: normal;
    padding-top: 0.5rem;
  }
  .suggest-search__container > .grid > .col {
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    padding: 0 2rem;
  }
}
@media only screen and (min-width: 1024px) and (max-width: 1203px) {
  .suggest-search__container {
    position: fixed;
    left: auto;
    top: 6.375rem;
    width: 26.4375rem;
  }
}
@media only screen and (min-width: 1204px) {
  .suggest-search__container {
    width: 26.4375rem;
  }
}
.suggest-search__input {
  padding: 1.375rem 5.4375rem 1.125rem 1rem;
  font-size: 1.125rem;
  font-weight: 500;
  border: 1px solid #B3B3B3;
  border-radius: 2px;
  position: relative;
  z-index: 702;
}
@media only screen and (min-width: 1024px) {
  .suggest-search__input {
    font-size: 0.9375rem;
    font-weight: 400;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
    padding-left: 0.625rem;
  }
}
.suggest-search__input--active {
  border-radius: 2px 2px 0 0;
}
.suggest-search__product {
  padding-bottom: 0.625rem;
}
.suggest-search__product-action {
  display: inline-block;
  position: relative;
  float: right;
}
.suggest-search__product-action > button {
  padding: 0;
  border: 0;
  font-size: 0.9375rem;
}
.suggest-search__product-action > button:hover {
  color: #f9232f;
  background: none;
}
.suggest-search__hint {
  padding: 1.375rem 3.5rem 1.125rem 2.6875rem;
  border: none;
  font-size: 1.125rem;
  font-weight: 500;
  position: absolute;
  color: #666666;
  top: 0;
  z-index: 701;
}
@media only screen and (min-width: 1024px) {
  .suggest-search__hint {
    font-size: 0.9375rem;
    font-weight: 400;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
    padding-left: 0.625rem;
  }
}
.suggest-search__hint--active {
  background-color: #f0f0f0;
  border-radius: 2px 2px 0 0;
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/toggler-checkbox/toggler-checkbox.scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.checkbox {
  display: inline-block;
}
.checkbox__container {
  cursor: pointer;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row nowrap;
          flex-flow: row nowrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.checkbox__box {
  -webkit-transition: background-color 250ms ease-in-out, border-color 250ms ease-in-out;
  transition: background-color 250ms ease-in-out, border-color 250ms ease-in-out;
  display: block;
  width: 1.625rem;
  height: 1.625rem;
  line-height: 1.625rem;
  border: 0.0625rem solid #dce0e5;
  background-color: #fff;
  margin-right: 0.625rem;
  text-align: center;
  border-radius: 2px;
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
}
@media only screen and (min-width: 768px) {
  .checkbox__box {
    margin-right: 0.875rem;
    width: 1.25rem;
    height: 1.25rem;
    line-height: 1.25rem;
  }
}
.checkbox__box--filter {
  width: 1.5rem;
  height: 1.5rem;
  line-height: 1.5rem;
}
@media only screen and (min-width: 768px) {
  .checkbox__box--filter {
    width: 1.125rem;
    height: 1.125rem;
    line-height: 1.125rem;
  }
}
.checkbox__box--shopping-list {
  position: absolute;
  top: 0.75rem;
  right: 0.9375rem;
  margin-right: 0;
  z-index: 1;
}
@media only screen and (min-width: 768px) {
  .checkbox__box--shopping-list {
    position: static;
    margin-right: 0.625rem;
  }
}
.checkbox__box--alternative {
  border: solid 0.125rem #666666;
}
.checkbox__box--borderless {
  border: none;
}
.checkbox__box--smart-project {
  margin-right: 0.5rem;
}
.checkbox__input {
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
  position: absolute;
}
.checkbox__input:checked ~ .checkbox__box {
  background-color: #E30613;
  border-color: #E30613;
}
.checkbox__input:checked ~ .checkbox__box .checkbox__check {
  pointer-events: all;
  visibility: visible;
  opacity: 1;
}
.checkbox__input:checked ~ .checkbox__box--smart-project {
  background-color: #6CA52F;
  border-color: #6CA52F;
}
.checkbox__input:checked ~ .checkbox__box--alternative {
  background-color: #fff;
  border-color: #666666;
}
.checkbox__input:checked ~ .checkbox__label {
  font-weight: 500;
}
.checkbox__input:checked ~ .checkbox__label--alternative {
  font-weight: 400;
}
.checkbox__input[disabled] ~ .checkbox__box, .checkbox__input[disabled] ~ .checkbox__box:hover, .checkbox__input--disabled ~ .checkbox__box, .checkbox__input--disabled ~ .checkbox__box:hover {
  background-color: #fff;
  border-color: #dce0e5;
  cursor: not-allowed;
}
.checkbox__input[disabled]:checked ~ .checkbox__box, .checkbox__input--disabled:checked ~ .checkbox__box {
  background-color: #dce0e5;
}
.checkbox__input[disabled] ~ .checkbox__label, .checkbox__input--disabled ~ .checkbox__label {
  color: #666666;
  cursor: not-allowed;
}
.checkbox__check {
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
  -webkit-transition: visibility 250ms ease-in-out, opacity 250ms ease-in-out;
  transition: visibility 250ms ease-in-out, opacity 250ms ease-in-out;
  color: #fff;
  vertical-align: baseline;
}
.checkbox__check--alternative {
  color: #666666;
  margin-bottom: 0.125rem;
}
.checkbox__label {
  display: inline-block;
  vertical-align: middle;
  text-transform: none;
  font-size: 0.875rem;
  font-weight: 400;
  margin: 0;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}
.checkbox__label--filter {
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  font-size: 0.875rem;
  font-weight: 400;
  text-transform: none;
  margin-bottom: 0;
}
.checkbox__label--alternative {
  margin-bottom: 0;
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1.25rem;
  color: #666666;
  text-transform: none;
}
.checkbox__label--smart-project {
  font-size: 1rem;
  color: #6CA52F;
}
.checkbox__counter {
  padding-left: 0.5rem;
}
.checkbox--expand {
  display: block;
}
.checkbox--filter {
  width: 100%;
  font-size: 0.9375rem;
  line-height: 1.125rem;
}
@media only screen and (min-width: 768px) {
  .checkbox--filter {
    font-size: 0.875rem;
  }
}
.checkbox--alternative {
  margin-bottom: 0.9375rem;
}
.checkbox--alternative:hover .checkbox__box--alternative {
  border-color: #666666;
}
@media only screen and (min-width: 768px) {
  .checkbox--pdp {
    margin-left: 8.25rem;
  }
}
.checkbox--pdp:hover .checkbox__box--alternative {
  border-color: #666666;
}
.checkbox--error .checkbox__box {
  border-color: #E30613;
}
.checkbox:hover .checkbox__box {
  border-color: #E30613;
}
.checkbox:hover .checkbox__box--smart-project {
  border-color: #6CA52F;
}
.checkbox:hover .checkbox__input[disabled] ~ .checkbox__box,
.checkbox:hover .checkbox__input--disabled ~ .checkbox__box {
  border-color: #dce0e5;
}

.toggler-checkbox {
  display: inline-block;
}
.toggler-checkbox__container {
  cursor: pointer;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row nowrap;
          flex-flow: row nowrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.toggler-checkbox__box {
  -webkit-transition: background-color 250ms ease-in-out, border-color 250ms ease-in-out;
  transition: background-color 250ms ease-in-out, border-color 250ms ease-in-out;
  display: block;
  width: 1.625rem;
  height: 1.625rem;
  line-height: 1.625rem;
  border: 0.0625rem solid #dce0e5;
  background-color: #fff;
  margin-right: 0.625rem;
  text-align: center;
  border-radius: 2px;
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
}
@media only screen and (min-width: 768px) {
  .toggler-checkbox__box {
    margin-right: 0.875rem;
    width: 1.25rem;
    height: 1.25rem;
    line-height: 1.25rem;
  }
}
.toggler-checkbox__box--filter {
  width: 1.5rem;
  height: 1.5rem;
  line-height: 1.5rem;
}
@media only screen and (min-width: 768px) {
  .toggler-checkbox__box--filter {
    width: 1.125rem;
    height: 1.125rem;
    line-height: 1.125rem;
  }
}
.toggler-checkbox__box--shopping-list {
  position: absolute;
  top: 0.75rem;
  right: 0.9375rem;
  margin-right: 0;
  z-index: 1;
}
@media only screen and (min-width: 768px) {
  .toggler-checkbox__box--shopping-list {
    position: static;
    margin-right: 0.625rem;
  }
}
.toggler-checkbox__box--alternative {
  border: solid 0.125rem #666666;
}
.toggler-checkbox__box--borderless {
  border: none;
}
.toggler-checkbox__box--smart-project {
  margin-right: 0.5rem;
}
.toggler-checkbox__input {
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
  position: absolute;
}
.toggler-checkbox__input:checked ~ .toggler-checkbox__box {
  background-color: #E30613;
  border-color: #E30613;
}
.toggler-checkbox__input:checked ~ .toggler-checkbox__box .toggler-checkbox__check {
  pointer-events: all;
  visibility: visible;
  opacity: 1;
}
.toggler-checkbox__input:checked ~ .toggler-checkbox__box--smart-project {
  background-color: #6CA52F;
  border-color: #6CA52F;
}
.toggler-checkbox__input:checked ~ .toggler-checkbox__box--alternative {
  background-color: #fff;
  border-color: #666666;
}
.toggler-checkbox__input:checked ~ .toggler-checkbox__label {
  font-weight: 500;
}
.toggler-checkbox__input:checked ~ .toggler-checkbox__label--alternative {
  font-weight: 400;
}
.toggler-checkbox__input[disabled] ~ .toggler-checkbox__box, .toggler-checkbox__input[disabled] ~ .toggler-checkbox__box:hover, .toggler-checkbox__input--disabled ~ .toggler-checkbox__box, .toggler-checkbox__input--disabled ~ .toggler-checkbox__box:hover {
  background-color: #fff;
  border-color: #dce0e5;
  cursor: not-allowed;
}
.toggler-checkbox__input[disabled]:checked ~ .toggler-checkbox__box, .toggler-checkbox__input--disabled:checked ~ .toggler-checkbox__box {
  background-color: #dce0e5;
}
.toggler-checkbox__input[disabled] ~ .toggler-checkbox__label, .toggler-checkbox__input--disabled ~ .toggler-checkbox__label {
  color: #666666;
  cursor: not-allowed;
}
.toggler-checkbox__check {
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
  -webkit-transition: visibility 250ms ease-in-out, opacity 250ms ease-in-out;
  transition: visibility 250ms ease-in-out, opacity 250ms ease-in-out;
  color: #fff;
  vertical-align: baseline;
}
.toggler-checkbox__check--alternative {
  color: #666666;
  margin-bottom: 0.125rem;
}
.toggler-checkbox__label {
  display: inline-block;
  vertical-align: middle;
  text-transform: none;
  font-size: 0.875rem;
  font-weight: 400;
  margin: 0;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}
.toggler-checkbox__label--filter {
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  font-size: 0.875rem;
  font-weight: 400;
  text-transform: none;
  margin-bottom: 0;
}
.toggler-checkbox__label--alternative {
  margin-bottom: 0;
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1.25rem;
  color: #666666;
  text-transform: none;
}
.toggler-checkbox__label--smart-project {
  font-size: 1rem;
  color: #6CA52F;
}
.toggler-checkbox__counter {
  padding-left: 0.5rem;
}
.toggler-checkbox--expand {
  display: block;
}
.toggler-checkbox--filter {
  width: 100%;
  font-size: 0.9375rem;
  line-height: 1.125rem;
}
@media only screen and (min-width: 768px) {
  .toggler-checkbox--filter {
    font-size: 0.875rem;
  }
}
.toggler-checkbox--alternative {
  margin-bottom: 0.9375rem;
}
.toggler-checkbox--alternative:hover .toggler-checkbox__box--alternative {
  border-color: #666666;
}
@media only screen and (min-width: 768px) {
  .toggler-checkbox--pdp {
    margin-left: 8.25rem;
  }
}
.toggler-checkbox--pdp:hover .toggler-checkbox__box--alternative {
  border-color: #666666;
}
.toggler-checkbox--error .toggler-checkbox__box {
  border-color: #E30613;
}
.toggler-checkbox:hover .toggler-checkbox__box {
  border-color: #E30613;
}
.toggler-checkbox:hover .toggler-checkbox__box--smart-project {
  border-color: #6CA52F;
}
.toggler-checkbox:hover .toggler-checkbox__input[disabled] ~ .toggler-checkbox__box,
.toggler-checkbox:hover .toggler-checkbox__input--disabled ~ .toggler-checkbox__box {
  border-color: #dce0e5;
}
.toggler-checkbox__input:checked ~ .toggler-checkbox__label {
  font-weight: 400;
}
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/toggler-radio/toggler-radio.scss ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.checkbox {
  display: inline-block;
}
.checkbox__container {
  cursor: pointer;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row nowrap;
          flex-flow: row nowrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.checkbox__box {
  -webkit-transition: background-color 250ms ease-in-out, border-color 250ms ease-in-out;
  transition: background-color 250ms ease-in-out, border-color 250ms ease-in-out;
  display: block;
  width: 1.625rem;
  height: 1.625rem;
  line-height: 1.625rem;
  border: 0.0625rem solid #dce0e5;
  background-color: #fff;
  margin-right: 0.625rem;
  text-align: center;
  border-radius: 2px;
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
}
@media only screen and (min-width: 768px) {
  .checkbox__box {
    margin-right: 0.875rem;
    width: 1.25rem;
    height: 1.25rem;
    line-height: 1.25rem;
  }
}
.checkbox__box--filter {
  width: 1.5rem;
  height: 1.5rem;
  line-height: 1.5rem;
}
@media only screen and (min-width: 768px) {
  .checkbox__box--filter {
    width: 1.125rem;
    height: 1.125rem;
    line-height: 1.125rem;
  }
}
.checkbox__box--shopping-list {
  position: absolute;
  top: 0.75rem;
  right: 0.9375rem;
  margin-right: 0;
  z-index: 1;
}
@media only screen and (min-width: 768px) {
  .checkbox__box--shopping-list {
    position: static;
    margin-right: 0.625rem;
  }
}
.checkbox__box--alternative {
  border: solid 0.125rem #666666;
}
.checkbox__box--borderless {
  border: none;
}
.checkbox__box--smart-project {
  margin-right: 0.5rem;
}
.checkbox__input {
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
  position: absolute;
}
.checkbox__input:checked ~ .checkbox__box {
  background-color: #E30613;
  border-color: #E30613;
}
.checkbox__input:checked ~ .checkbox__box .checkbox__check {
  pointer-events: all;
  visibility: visible;
  opacity: 1;
}
.checkbox__input:checked ~ .checkbox__box--smart-project {
  background-color: #6CA52F;
  border-color: #6CA52F;
}
.checkbox__input:checked ~ .checkbox__box--alternative {
  background-color: #fff;
  border-color: #666666;
}
.checkbox__input:checked ~ .checkbox__label {
  font-weight: 500;
}
.checkbox__input:checked ~ .checkbox__label--alternative {
  font-weight: 400;
}
.checkbox__input[disabled] ~ .checkbox__box, .checkbox__input[disabled] ~ .checkbox__box:hover, .checkbox__input--disabled ~ .checkbox__box, .checkbox__input--disabled ~ .checkbox__box:hover {
  background-color: #fff;
  border-color: #dce0e5;
  cursor: not-allowed;
}
.checkbox__input[disabled]:checked ~ .checkbox__box, .checkbox__input--disabled:checked ~ .checkbox__box {
  background-color: #dce0e5;
}
.checkbox__input[disabled] ~ .checkbox__label, .checkbox__input--disabled ~ .checkbox__label {
  color: #666666;
  cursor: not-allowed;
}
.checkbox__check {
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
  -webkit-transition: visibility 250ms ease-in-out, opacity 250ms ease-in-out;
  transition: visibility 250ms ease-in-out, opacity 250ms ease-in-out;
  color: #fff;
  vertical-align: baseline;
}
.checkbox__check--alternative {
  color: #666666;
  margin-bottom: 0.125rem;
}
.checkbox__label {
  display: inline-block;
  vertical-align: middle;
  text-transform: none;
  font-size: 0.875rem;
  font-weight: 400;
  margin: 0;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}
.checkbox__label--filter {
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  font-size: 0.875rem;
  font-weight: 400;
  text-transform: none;
  margin-bottom: 0;
}
.checkbox__label--alternative {
  margin-bottom: 0;
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1.25rem;
  color: #666666;
  text-transform: none;
}
.checkbox__label--smart-project {
  font-size: 1rem;
  color: #6CA52F;
}
.checkbox__counter {
  padding-left: 0.5rem;
}
.checkbox--expand {
  display: block;
}
.checkbox--filter {
  width: 100%;
  font-size: 0.9375rem;
  line-height: 1.125rem;
}
@media only screen and (min-width: 768px) {
  .checkbox--filter {
    font-size: 0.875rem;
  }
}
.checkbox--alternative {
  margin-bottom: 0.9375rem;
}
.checkbox--alternative:hover .checkbox__box--alternative {
  border-color: #666666;
}
@media only screen and (min-width: 768px) {
  .checkbox--pdp {
    margin-left: 8.25rem;
  }
}
.checkbox--pdp:hover .checkbox__box--alternative {
  border-color: #666666;
}
.checkbox--error .checkbox__box {
  border-color: #E30613;
}
.checkbox:hover .checkbox__box {
  border-color: #E30613;
}
.checkbox:hover .checkbox__box--smart-project {
  border-color: #6CA52F;
}
.checkbox:hover .checkbox__input[disabled] ~ .checkbox__box,
.checkbox:hover .checkbox__input--disabled ~ .checkbox__box {
  border-color: #dce0e5;
}

.radio {
  display: inline-block;
}
.radio__container {
  cursor: pointer;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row nowrap;
          flex-flow: row nowrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.radio__box {
  -webkit-transition: background-color 250ms ease-in-out, border-color 250ms ease-in-out;
  transition: background-color 250ms ease-in-out, border-color 250ms ease-in-out;
  display: block;
  width: 1.625rem;
  height: 1.625rem;
  line-height: 1.625rem;
  border: 0.0625rem solid #dce0e5;
  background-color: #fff;
  margin-right: 0.625rem;
  text-align: center;
  border-radius: 2px;
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
}
@media only screen and (min-width: 768px) {
  .radio__box {
    margin-right: 0.875rem;
    width: 1.25rem;
    height: 1.25rem;
    line-height: 1.25rem;
  }
}
.radio__box--filter {
  width: 1.5rem;
  height: 1.5rem;
  line-height: 1.5rem;
}
@media only screen and (min-width: 768px) {
  .radio__box--filter {
    width: 1.125rem;
    height: 1.125rem;
    line-height: 1.125rem;
  }
}
.radio__box--shopping-list {
  position: absolute;
  top: 0.75rem;
  right: 0.9375rem;
  margin-right: 0;
  z-index: 1;
}
@media only screen and (min-width: 768px) {
  .radio__box--shopping-list {
    position: static;
    margin-right: 0.625rem;
  }
}
.radio__box--alternative {
  border: solid 0.125rem #666666;
}
.radio__box--borderless {
  border: none;
}
.radio__box--smart-project {
  margin-right: 0.5rem;
}
.radio__input {
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
  position: absolute;
}
.radio__input:checked ~ .radio__box {
  background-color: #E30613;
  border-color: #E30613;
}
.radio__input:checked ~ .radio__box .radio__check {
  pointer-events: all;
  visibility: visible;
  opacity: 1;
}
.radio__input:checked ~ .radio__box--smart-project {
  background-color: #6CA52F;
  border-color: #6CA52F;
}
.radio__input:checked ~ .radio__box--alternative {
  background-color: #fff;
  border-color: #666666;
}
.radio__input:checked ~ .radio__label {
  font-weight: 500;
}
.radio__input:checked ~ .radio__label--alternative {
  font-weight: 400;
}
.radio__input[disabled] ~ .radio__box, .radio__input[disabled] ~ .radio__box:hover, .radio__input--disabled ~ .radio__box, .radio__input--disabled ~ .radio__box:hover {
  background-color: #fff;
  border-color: #dce0e5;
  cursor: not-allowed;
}
.radio__input[disabled]:checked ~ .radio__box, .radio__input--disabled:checked ~ .radio__box {
  background-color: #dce0e5;
}
.radio__input[disabled] ~ .radio__label, .radio__input--disabled ~ .radio__label {
  color: #666666;
  cursor: not-allowed;
}
.radio__check {
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
  -webkit-transition: visibility 250ms ease-in-out, opacity 250ms ease-in-out;
  transition: visibility 250ms ease-in-out, opacity 250ms ease-in-out;
  color: #fff;
  vertical-align: baseline;
}
.radio__check--alternative {
  color: #666666;
  margin-bottom: 0.125rem;
}
.radio__label {
  display: inline-block;
  vertical-align: middle;
  text-transform: none;
  font-size: 0.875rem;
  font-weight: 400;
  margin: 0;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}
.radio__label--filter {
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  font-size: 0.875rem;
  font-weight: 400;
  text-transform: none;
  margin-bottom: 0;
}
.radio__label--alternative {
  margin-bottom: 0;
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1.25rem;
  color: #666666;
  text-transform: none;
}
.radio__label--smart-project {
  font-size: 1rem;
  color: #6CA52F;
}
.radio__counter {
  padding-left: 0.5rem;
}
.radio--expand {
  display: block;
}
.radio--filter {
  width: 100%;
  font-size: 0.9375rem;
  line-height: 1.125rem;
}
@media only screen and (min-width: 768px) {
  .radio--filter {
    font-size: 0.875rem;
  }
}
.radio--alternative {
  margin-bottom: 0.9375rem;
}
.radio--alternative:hover .radio__box--alternative {
  border-color: #666666;
}
@media only screen and (min-width: 768px) {
  .radio--pdp {
    margin-left: 8.25rem;
  }
}
.radio--pdp:hover .radio__box--alternative {
  border-color: #666666;
}
.radio--error .radio__box {
  border-color: #E30613;
}
.radio:hover .radio__box {
  border-color: #E30613;
}
.radio:hover .radio__box--smart-project {
  border-color: #6CA52F;
}
.radio:hover .radio__input[disabled] ~ .radio__box,
.radio:hover .radio__input--disabled ~ .radio__box {
  border-color: #dce0e5;
}
.radio--mobile-small .radio__box {
  width: 1.25rem;
  height: 1.25rem;
  line-height: 1.25rem;
}
.radio__box {
  -webkit-transition: border-color 250ms ease-in-out;
  transition: border-color 250ms ease-in-out;
  border-radius: 100%;
  border-width: 0.125rem;
}
.radio__check {
  display: none;
}
.radio__input:checked ~ .radio__box {
  background-color: #E30613;
  border-color: #E30613;
  -webkit-box-shadow: inset 0 0 0 0.1875rem #fff;
          box-shadow: inset 0 0 0 0.1875rem #fff;
}

.toggler-radio {
  display: inline-block;
}
.toggler-radio__container {
  cursor: pointer;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row nowrap;
          flex-flow: row nowrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.toggler-radio__box {
  -webkit-transition: background-color 250ms ease-in-out, border-color 250ms ease-in-out;
  transition: background-color 250ms ease-in-out, border-color 250ms ease-in-out;
  display: block;
  width: 1.625rem;
  height: 1.625rem;
  line-height: 1.625rem;
  border: 0.0625rem solid #dce0e5;
  background-color: #fff;
  margin-right: 0.625rem;
  text-align: center;
  border-radius: 2px;
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
}
@media only screen and (min-width: 768px) {
  .toggler-radio__box {
    margin-right: 0.875rem;
    width: 1.25rem;
    height: 1.25rem;
    line-height: 1.25rem;
  }
}
.toggler-radio__box--filter {
  width: 1.5rem;
  height: 1.5rem;
  line-height: 1.5rem;
}
@media only screen and (min-width: 768px) {
  .toggler-radio__box--filter {
    width: 1.125rem;
    height: 1.125rem;
    line-height: 1.125rem;
  }
}
.toggler-radio__box--shopping-list {
  position: absolute;
  top: 0.75rem;
  right: 0.9375rem;
  margin-right: 0;
  z-index: 1;
}
@media only screen and (min-width: 768px) {
  .toggler-radio__box--shopping-list {
    position: static;
    margin-right: 0.625rem;
  }
}
.toggler-radio__box--alternative {
  border: solid 0.125rem #666666;
}
.toggler-radio__box--borderless {
  border: none;
}
.toggler-radio__box--smart-project {
  margin-right: 0.5rem;
}
.toggler-radio__input {
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
  position: absolute;
}
.toggler-radio__input:checked ~ .toggler-radio__box {
  background-color: #E30613;
  border-color: #E30613;
}
.toggler-radio__input:checked ~ .toggler-radio__box .toggler-radio__check {
  pointer-events: all;
  visibility: visible;
  opacity: 1;
}
.toggler-radio__input:checked ~ .toggler-radio__box--smart-project {
  background-color: #6CA52F;
  border-color: #6CA52F;
}
.toggler-radio__input:checked ~ .toggler-radio__box--alternative {
  background-color: #fff;
  border-color: #666666;
}
.toggler-radio__input:checked ~ .toggler-radio__label {
  font-weight: 500;
}
.toggler-radio__input:checked ~ .toggler-radio__label--alternative {
  font-weight: 400;
}
.toggler-radio__input[disabled] ~ .toggler-radio__box, .toggler-radio__input[disabled] ~ .toggler-radio__box:hover, .toggler-radio__input--disabled ~ .toggler-radio__box, .toggler-radio__input--disabled ~ .toggler-radio__box:hover {
  background-color: #fff;
  border-color: #dce0e5;
  cursor: not-allowed;
}
.toggler-radio__input[disabled]:checked ~ .toggler-radio__box, .toggler-radio__input--disabled:checked ~ .toggler-radio__box {
  background-color: #dce0e5;
}
.toggler-radio__input[disabled] ~ .toggler-radio__label, .toggler-radio__input--disabled ~ .toggler-radio__label {
  color: #666666;
  cursor: not-allowed;
}
.toggler-radio__check {
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
  -webkit-transition: visibility 250ms ease-in-out, opacity 250ms ease-in-out;
  transition: visibility 250ms ease-in-out, opacity 250ms ease-in-out;
  color: #fff;
  vertical-align: baseline;
}
.toggler-radio__check--alternative {
  color: #666666;
  margin-bottom: 0.125rem;
}
.toggler-radio__label {
  display: inline-block;
  vertical-align: middle;
  text-transform: none;
  font-size: 0.875rem;
  font-weight: 400;
  margin: 0;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}
.toggler-radio__label--filter {
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  font-size: 0.875rem;
  font-weight: 400;
  text-transform: none;
  margin-bottom: 0;
}
.toggler-radio__label--alternative {
  margin-bottom: 0;
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1.25rem;
  color: #666666;
  text-transform: none;
}
.toggler-radio__label--smart-project {
  font-size: 1rem;
  color: #6CA52F;
}
.toggler-radio__counter {
  padding-left: 0.5rem;
}
.toggler-radio--expand {
  display: block;
}
.toggler-radio--filter {
  width: 100%;
  font-size: 0.9375rem;
  line-height: 1.125rem;
}
@media only screen and (min-width: 768px) {
  .toggler-radio--filter {
    font-size: 0.875rem;
  }
}
.toggler-radio--alternative {
  margin-bottom: 0.9375rem;
}
.toggler-radio--alternative:hover .toggler-radio__box--alternative {
  border-color: #666666;
}
@media only screen and (min-width: 768px) {
  .toggler-radio--pdp {
    margin-left: 8.25rem;
  }
}
.toggler-radio--pdp:hover .toggler-radio__box--alternative {
  border-color: #666666;
}
.toggler-radio--error .toggler-radio__box {
  border-color: #E30613;
}
.toggler-radio:hover .toggler-radio__box {
  border-color: #E30613;
}
.toggler-radio:hover .toggler-radio__box--smart-project {
  border-color: #6CA52F;
}
.toggler-radio:hover .toggler-radio__input[disabled] ~ .toggler-radio__box,
.toggler-radio:hover .toggler-radio__input--disabled ~ .toggler-radio__box {
  border-color: #dce0e5;
}
.toggler-radio--mobile-small .toggler-radio__box {
  width: 1.25rem;
  height: 1.25rem;
  line-height: 1.25rem;
}
.toggler-radio__box {
  -webkit-transition: border-color 250ms ease-in-out;
  transition: border-color 250ms ease-in-out;
  border-radius: 100%;
  border-width: 0.125rem;
}
.toggler-radio__check {
  display: none;
}
.toggler-radio__input:checked ~ .toggler-radio__box {
  background-color: #E30613;
  border-color: #E30613;
  -webkit-box-shadow: inset 0 0 0 0.1875rem #fff;
          box-shadow: inset 0 0 0 0.1875rem #fff;
}
.toggler-radio__label {
  color: #666666;
}
.toggler-radio__input:checked ~ .toggler-radio__box {
  background-color: #fff;
  -webkit-box-shadow: inset 0 0 0 0.25rem #E30613;
          box-shadow: inset 0 0 0 0.25rem #E30613;
}
.toggler-radio__input:checked ~ .toggler-radio__label {
  color: #666666;
  font-weight: 500;
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./vendor/spryker-shop/shop-ui/src/SprykerShop/Yves/ShopUi/Theme/default/components/molecules/tooltip-message/style.scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.tooltip-message {
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
  -webkit-transition: visibility 250ms ease-in-out, opacity 250ms ease-in-out;
  transition: visibility 250ms ease-in-out, opacity 250ms ease-in-out;
  display: block;
  position: absolute;
  min-width: 20rem;
  margin-top: -0.5rem;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}
.tooltip-message__text {
  font-size: 1rem;
  -webkit-box-shadow: 0 2px 5px 1px rgba(0, 0, 0, 0.1);
          box-shadow: 0 2px 5px 1px rgba(0, 0, 0, 0.1);
  float: left;
  display: block;
  position: absolute;
  bottom: 0;
  padding: 0.25rem;
  background-color: #fff;
  border: 1px solid #dadada;
  text-align: center;
  z-index: 2;
}
.tooltip-message__arrow {
  position: absolute;
  left: calc(50% - 0.5rem);
  bottom: -0.5rem;
  border: 0.5rem solid #dadada;
  border-top-color: transparent;
  border-left-color: transparent;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
  z-index: 1;
}
.tooltip-message--success .tooltip-message__text {
  background-color: #9ff0e1;
  border-color: #1ebea0;
  color: #1ebea0;
}
.tooltip-message--success .tooltip-message__arrow {
  border-right-color: #1ebea0;
  border-bottom-color: #1ebea0;
}
.tooltip-message--warning .tooltip-message__text {
  background-color: #fff7e7;
  border-color: #fdbe36;
  color: #fdbe36;
}
.tooltip-message--warning .tooltip-message__arrow {
  border-right-color: #fdbe36;
  border-bottom-color: #fdbe36;
}
.tooltip-message--alert .tooltip-message__text {
  background-color: #fc9fa5;
  border-color: #E30613;
  color: #E30613;
}
.tooltip-message--alert .tooltip-message__arrow {
  border-right-color: #E30613;
  border-bottom-color: #E30613;
}
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/templates/page-layout-main/page-layout-main.scss ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.page-layout {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  height: 100%;
}
.page-layout .content-wrap {
  background: #F8F8F8;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}
@media print {
  .page-layout .content-wrap {
    background: none;
  }
}
.page-layout .content-wrap > main {
  overflow: hidden;
}

.page-layout-main--cms-search-page {
  position: relative;
  padding-top: 1rem;
}
@media only screen and (min-width: 768px) {
  .page-layout-main--cms-search-page {
    padding-top: 1.25rem;
  }
}
.page-layout-main--catalog-page-content {
  padding-bottom: 3.75rem;
}
@media only screen and (min-width: 768px) {
  .page-layout-main--catalog-page-content {
    padding-bottom: 4.375rem;
  }
}
@media only screen and (min-width: 768px) {
  .page-layout-main--pdp {
    padding: 30px 0 0;
  }
}
.page-layout-main--quick-order-page {
  padding: 0.875rem 0 3.75rem;
}
@media only screen and (min-width: 768px) {
  .page-layout-main--quick-order-page {
    padding: 3.125rem 0 3.375rem;
  }
}
.page-layout-main--cart-page {
  padding-top: 0.875rem;
  padding-bottom: 1.875rem;
}
@media only screen and (min-width: 768px) {
  .page-layout-main--cart-page {
    padding-top: 2rem;
    padding-bottom: 3.75rem;
  }
}
@media only screen and (min-width: 1024px) {
  .page-layout-main--cart-page {
    padding-bottom: 7.5rem;
  }
}
.page-layout-main--checkout-page {
  padding-top: 1.5rem;
  padding-bottom: 5rem;
}
@media only screen and (min-width: 768px) {
  .page-layout-main--checkout-page {
    padding-top: 2rem;
  }
}
@media only screen and (min-width: 1024px) {
  .page-layout-main--checkout-page {
    padding-bottom: 7.5rem;
  }
}
.page-layout-main--cms-page {
  padding-top: 2rem;
  padding-bottom: 4.375rem;
}
.page-layout-main--success {
  padding-top: 0;
  padding-bottom: 3.125rem;
}
@media only screen and (min-width: 1024px) {
  .page-layout-main--success {
    padding-bottom: 6.875rem;
  }
}
.page-layout-main--error-page {
  min-height: 28.75rem;
  padding-top: 2.1875rem;
}
.page-layout-main__pdp-gallery {
  background: rgba(0, 0, 0, 0.05);
  padding: 0 0.9375rem 0.9375rem;
  margin: 0 -0.9375rem;
  width: calc(100% + 30px);
  min-width: 100%;
}
@media only screen and (min-width: 768px) {
  .page-layout-main__pdp-gallery {
    background: transparent;
    width: calc(660 / 1200 * 100%);
    min-width: calc(660 / 1200 * 100%);
    margin: 0 0.9375rem 0 0;
    padding-bottom: 0;
  }
}

.main, main.page-landing .box {
  background: #F8F8F8;
}
@media print {
  .main, main.page-landing .box {
    background: none;
  }
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/CatalogPage/Theme/default/components/molecules/active-filter/active-filter.scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.active-filter {
  line-height: 1.125rem;
  border-radius: 2px;
  color: #666666;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/CatalogPage/Theme/default/components/molecules/catalog-cms-block/catalog-cms-block.scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.catalog-cms-block > * {
  font: 500 1.125rem/1.4375rem "FrutigerNextPro";
}
.catalog-cms-block p {
  font-size: 0.9375rem;
  line-height: 1.375rem;
  font-weight: 400;
  color: #666666;
  margin-top: 0.625rem;
}
.catalog-cms-block a {
  color: #8f8f8f;
}
.catalog-cms-block a:hover, .catalog-cms-block a:focus {
  color: #E30613;
}
.catalog-cms-block hr {
  display: none;
}
.catalog-cms-block--sidebar {
  margin-top: 3rem;
}
.catalog-cms-block--sidebar p {
  text-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.05);
}
.catalog-cms-block--bottom {
  text-align: center;
}
.catalog-cms-block--bottom > * {
  font-size: 2rem;
  line-height: 2.5625rem;
}
.catalog-cms-block--bottom > *:first-child {
  margin-top: 0;
}
.catalog-cms-block--bottom p {
  color: #666666;
  font-size: 1.125rem;
  line-height: 1.8125rem;
  margin-top: 1.5rem;
}
.catalog-cms-block-wrap {
  background-color: #f0f0f0;
  padding: 3.125rem 0 2.375rem;
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/CatalogPage/Theme/default/components/molecules/filter-category/filter-category.scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.filter-category__menu-link {
  -webkit-transition: color 250ms ease-in-out;
  transition: color 250ms ease-in-out;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  width: 100%;
  margin-bottom: 0.6875rem;
  color: #666666;
  cursor: pointer;
  background-color: rgba(255, 255, 255, 0);
  font: 400 0.9375rem/1.4375rem "FrutigerNextPro";
}
.filter-category__menu-link--lvl-1 {
  color: #666666;
}
.filter-category__menu-link--lvl-2 {
  color: #666666;
}
.filter-category__menu-link:hover, .filter-category__menu-link:focus {
  color: #666666;
  text-decoration: none;
}
.filter-category__menu-link[disabled], .filter-category__menu-link[disabled]:hover, .filter-category__menu-link[disabled]:focus {
  color: #666666;
}
.filter-category__menu-link--active {
  font-weight: 500;
  color: #666666;
}
.filter-category__link-text {
  text-align: left;
}
.filter-category__menu:not(.filter-category__menu--lvl-1) {
  margin-left: 10px;
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/CatalogPage/Theme/default/components/molecules/filter-enumeration/filter-enumeration.scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.filter-enumeration {
  margin-bottom: -0.5rem;
}
.filter-enumeration__search {
  background-color: rgba(255, 255, 255, 0);
  border: 1px solid #B3B3B3;
  border-radius: 2px;
  font-size: 1.125rem;
  margin-bottom: 0.9375rem;
  padding: 0.5rem 3.5rem 0.5rem 0.625rem;
  width: 100%;
}
@media only screen and (min-width: 768px) {
  .filter-enumeration__search {
    font-size: 0.9375rem;
  }
}
.filter-enumeration__show-more {
  cursor: pointer;
  font-weight: bold;
  font-family: "FrutigerNextPro";
  font-size: 0.875rem;
  margin-top: 0.8125rem;
}
.filter-enumeration__show-more i {
  font-size: 0.875rem;
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/CatalogPage/Theme/default/components/molecules/filter-range/filter-range.scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.filter-range__inputs {
  margin-top: 1.25rem;
  font-weight: 500;
  color: #666666;
}
.filter-range__input-wrap {
  position: relative;
}
.filter-range__currency {
  position: absolute;
  right: 1px;
  top: 1px;
  bottom: 1px;
  border-radius: 0 2px 2px 0;
  width: 1.875rem;
  text-align: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  background-color: #fff;
  font-size: 0.75rem;
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/CatalogPage/Theme/default/components/molecules/filter-rating/filter-rating.scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.filter-rating {
  font-size: 0.875rem;
}
.filter-rating__text {
  vertical-align: middle;
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/CatalogPage/Theme/default/components/molecules/suggestion-links-list/suggestion-links-list.scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.suggestion-links-list__title {
  display: inline-block;
  font-size: 1.0625rem;
  font-weight: 500;
  line-height: normal;
  letter-spacing: 0.0125rem;
  padding-top: 0.75rem;
  color: #666666;
}
.suggestion-links-list__item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1.125rem;
  letter-spacing: 0.00625rem;
  padding-top: 0.75rem;
}
.suggestion-links-list__link {
  color: #8f8f8f;
}
.suggestion-links-list__link:hover {
  color: #666666;
}
.suggestion-links-list__manufacturer-link {
  color: #8f8f8f;
}
.suggestion-links-list__manufacturer-link:hover {
  color: #666666;
}
.suggestion-links-list__manufacturer-link {
  font-size: 0.8125rem;
  margin-top: 3px;
  margin-left: 5px;
}
.suggestion-links-list--tag__list {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-column-gap: 0.75rem;
     -moz-column-gap: 0.75rem;
          column-gap: 0.75rem;
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/CatalogPage/Theme/default/components/molecules/view-mode-switch/view-mode-switch.scss ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.view-mode-switch {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.view-mode-switch__link {
  -webkit-transition: color 250ms ease-in-out;
  transition: color 250ms ease-in-out;
  background-color: #F8F8F8;
  border: 1px solid #B3B3B3;
  border-radius: 2px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 50%;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  padding: 0.5rem;
  font-size: 0.875rem;
  color: #666666;
  line-height: 1.125rem;
}
.view-mode-switch__link:not(:first-child) {
  margin-left: 0.625rem;
}
.view-mode-switch__link:hover, .view-mode-switch__link:focus {
  color: #666666;
}
.view-mode-switch__link--active {
  background-color: #fff;
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/CatalogPage/Theme/default/components/organisms/active-filter-section/active-filter-section.scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.active-filter-section {
  margin-top: 1.25rem;
  margin-bottom: 0.75rem;
}
.active-filter-section__item,
.active-filter-section .active-filter {
  font-size: 0.9375rem;
}
.active-filter-section__item:not(:last-child),
.active-filter-section .active-filter:not(:last-child) {
  margin-right: 0.9375rem;
}
.active-filter-section__reset {
  -webkit-transition: color 250ms ease-in-out;
  transition: color 250ms ease-in-out;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin-left: 15px;
  color: #666666;
  font-size: 0.875rem;
}
.active-filter-section__reset:hover,
.active-filter-section__reset:hover .active-filter-section__reset-icon, .active-filter-section__reset:focus,
.active-filter-section__reset:focus .active-filter-section__reset-icon {
  color: #8f8f8f;
}
.active-filter-section__reset-icon {
  margin-top: -0.25rem;
}
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/CatalogPage/Theme/default/components/organisms/filter-section/filter-section.scss ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.filter-section {
  background: #fff;
  padding: 0.875rem 1.25rem 3.625rem;
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  bottom: 0;
  z-index: 900;
}
@media only screen and (min-width: 768px) {
  .filter-section {
    background: none;
    position: static;
    padding: 0;
  }
}
.filter-section__holder {
  height: 100%;
  height: calc(100% - 9.375rem);
  overflow: auto;
}
@media only screen and (min-width: 768px) {
  .filter-section__holder {
    height: auto;
    overflow: visible;
  }
}
.filter-section__item {
  padding: 1.125rem 0;
  background-color: #fff;
  position: relative;
}
@media only screen and (min-width: 768px) {
  .filter-section__item {
    padding: 1.125rem;
  }
  .filter-section__item .js-category {
    margin-top: 0;
  }
}
.filter-section__item:after {
  content: "";
  position: absolute;
  bottom: 0;
  width: 100%;
  height: 1px;
  background-color: #E7E7E7;
}
@media only screen and (min-width: 768px) {
  .filter-section__item:after {
    width: calc(100% - 36px);
  }
}
@media only screen and (min-width: 768px) {
  .filter-section__item--separate {
    margin-bottom: 1.25rem;
  }
}
@media only screen and (min-width: 768px) {
  .filter-section__item--separate:after {
    content: none;
  }
}
@media only screen and (max-width: 769px) {
  .filter-section__item--heading {
    display: none;
  }
}
.filter-section__item--heading {
  background: #B3B3B3;
  color: #fff;
  font-size: 1.25rem;
  font-weight: 500;
  line-height: 1;
  padding: 1.125rem 1.125rem 0.875rem;
  z-index: 1;
}
.filter-section__item--heading:after {
  display: none;
}
.filter-section__toggle-secondary-filters {
  cursor: pointer;
  background: #fff;
  padding: 18px 18px 0 48px;
  display: block;
  width: 100%;
  text-align: left;
  font-size: 0.875rem;
  color: #E30613;
}
.filter-section__toggle-secondary-filters:after {
  font-family: "Font Awesome 5 Pro";
  font-weight: 400;
  content: "\f061";
  display: inline-block;
  margin-left: 5px;
}
.filter-section__title {
  text-align: center;
  padding: 0 1.0625rem 0.75rem;
}
.filter-section__close {
  background: none;
  color: #666666;
  position: absolute;
  top: 1.0625rem;
  right: 1.25rem;
}
.filter-section__item-title {
  color: #666666;
}
.filter-section__item-title .icon {
  margin-top: -2px;
}
.filter-section__item-content {
  margin-top: 1.25rem;
}
.filter-section__actions {
  background-color: #fff;
  padding: 1.125rem;
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
}
@media only screen and (min-width: 768px) {
  .filter-section__actions {
    position: static;
    margin-bottom: 1.25rem;
  }
}
.filter-section__button:not(:first-child) {
  margin-top: 0.625rem;
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/HomePage/Theme/default/components/organisms/common-section/common-section.scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.common-section {
  padding: 4.375rem 0 1rem;
}
.common-section--bg-dark {
  padding: 3.125rem 0 5rem;
  background-color: #F8F8F8;
}
.common-section--bg-dark .product-card__overlay::before {
  background-color: rgba(255, 255, 255, 0);
}
.common-section--bg-dark .product-card__container {
  background-color: #fff;
}
.common-section--sm-padding {
  padding: 2.875rem 0 2.875rem;
}
.common-section--full-width {
  margin-left: -15px;
  margin-right: -15px;
}
.common-section__title {
  color: #666666;
  text-align: center;
  margin-bottom: 1.5rem;
}
.common-section__title--home {
  color: #666666;
  font-size: 1.75rem;
  font-weight: 500;
  line-height: 2.0625rem;
}
@media only screen and (max-width: 549px) {
  .common-section__title--home {
    font-size: 2rem;
    line-height: 2.375rem;
  }
}
.common-section__sub-title {
  font-size: 1.125rem;
  line-height: normal;
  color: #666666;
  text-align: center;
  margin-bottom: 2.5rem;
}
.common-section__text {
  text-align: center;
  font-size: 1.125rem;
  color: #666666;
  line-height: 1.61;
  max-width: 60.625rem;
  margin: 0 auto 2.5rem;
}
.common-section__link {
  color: #8f8f8f;
}
.common-section__link:hover {
  color: #767676;
}
@media only screen and (max-width: 1203px) {
  .common-section--brand {
    padding-left: 2rem;
    padding-right: 2rem;
  }
}
.common-section--mb0 {
  margin-bottom: 0;
  padding-top: 3.75rem;
}
.common-section--mb0 .product-card {
  padding-bottom: 0;
}
@media only screen and (max-width: 769px) {
  .common-section--mb0 {
    padding-top: 1.25rem;
  }
}
@media only screen and (max-width: 549px) {
  .common-section--mb0 {
    padding-top: 0rem;
  }
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ProductDetailPage/Theme/default/components/molecules/pdp-title/pdp-title.scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.pdp-title {
  color: #666666;
  font-size: 1.75rem;
}
.pdp-title .label-group {
  position: relative;
  padding: 0;
  display: inline-block;
  font-size: 0;
  line-height: 0;
  vertical-align: middle;
  top: -0.125rem;
}
.pdp-title .label-group--hidden {
  display: none;
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ProductDetailPage/Theme/default/components/molecules/product-additional/product-additional.scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.product-additional {
  font-family: "FrutigerNextPro";
}
@media only screen and (min-width: 770px) {
  .product-additional {
    padding-right: 1.5625rem;
    padding-left: 1.875rem;
  }
  .product-additional .product-tabs__container,
  .product-additional .product-tabs__content {
    display: block;
  }
  .product-additional .product-tabs__content {
    padding-bottom: 0;
  }
}
.product-additional__title {
  display: none;
  color: #666666;
  line-height: normal;
  margin-bottom: 0.9375rem;
  font-size: 0.9375rem;
  font-weight: 500;
}
@media only screen and (min-width: 770px) {
  .product-additional__title {
    display: block;
  }
}
@media print {
  .product-additional__title {
    margin-bottom: 0;
  }
}
.product-additional__content {
  padding-top: 0.9375rem;
}
@media only screen and (min-width: 770px) {
  .product-additional__content {
    padding: 1.875rem 0.9375rem 0 2.5rem;
  }
}
.product-additional__content-text {
  margin-left: 0.3125rem;
  margin-top: 0.625rem;
}
.product-additional__detail-content ul {
  list-style: inherit;
  margin-left: 2.5rem;
}
.product-additional__detail-documents, .product-additional__detail-content, .product-additional__detail-recommend {
  padding-bottom: 0.9375rem;
}
@media only screen and (min-width: 770px) {
  .product-additional__detail-documents, .product-additional__detail-content, .product-additional__detail-recommend {
    border-bottom: 1px solid #E9E7E7;
  }
}
.product-additional__detail-document-link {
  color: #666666;
}
.product-additional__detail-list {
  margin-top: 1.5625rem;
}
@media print {
  .product-additional__detail-list {
    margin-top: 0;
  }
}
.product-additional__detail-list-item {
  font-size: 0.9375rem;
  padding: 0.3125rem 0;
}
@media print {
  .product-additional__detail-list-item {
    padding: 0;
  }
}
.product-additional__detail-list-item:nth-child(even) {
  background-color: #f0f0f0;
}
.product-additional__detail-list-title {
  font-size: 1.125rem;
}
.product-additional__detail-list-key {
  margin-bottom: 0.3125rem;
  line-height: normal;
}
@media only screen and (min-width: 770px) {
  .product-additional__detail-list-key {
    margin-bottom: 0;
  }
}
.product-additional__detail-list-title, .product-additional__detail-list-key {
  font-weight: 500;
}
@media print {
  .product-additional__detail-list-title, .product-additional__detail-list-key {
    line-height: 1.2;
  }
}
.product-additional__detail-list-value {
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: normal;
}
.product-additional__detail-list-value .fa-check {
  color: #6CA52F;
}
.product-additional__detail-list-value .fa-times {
  color: #E30613;
}
.product-additional__recommend .product-additional__title, .product-additional__manufacturer .product-additional__title {
  display: block;
}
.product-additional__recommend--section-title, .product-additional__manufacturer--section-title {
  font-size: 0.9375rem;
  margin-bottom: 0.625rem;
}
@media only screen and (min-width: 770px) {
  .product-additional__recommend, .product-additional__manufacturer {
    padding: 0 0.9375rem 0 2.5rem;
  }
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ProductDetailPage/Theme/default/components/molecules/product-bundle/product-bundle.scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.product-bundle {
  max-width: 870px;
  margin: 0 auto 90px;
}
.product-bundle--configurator {
  max-width: 100%;
  margin: 0;
  padding-bottom: 11px;
}
.product-bundle--cart {
  max-width: none;
  margin: 0;
}
.product-bundle__title {
  text-align: center;
  font-size: 2rem;
  color: #666666;
  margin-bottom: 22px;
}
.product-bundle__title--cart {
  font-size: 0.875rem;
  font-weight: 500;
  color: #666666;
  text-align: left;
  margin: 10px 0 3px;
}
.product-bundle__list--cart {
  padding: 0 0 0 1.25rem;
  font-size: 0.8125rem;
  font-weight: 400;
  color: #666666;
}
.product-bundle__item--configurator {
  padding-bottom: 10px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.product-bundle__item--cart {
  padding: 3px 0;
}
.product-bundle__img-block {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 10px;
  height: 320px;
  position: relative;
  margin-bottom: 16px;
}
.product-bundle__img-block::before {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background: rgba(0, 0, 0, 0.1);
}
.product-bundle__img-block--configurator {
  padding: 5px;
  min-width: 70px;
  width: 70px;
  height: 70px;
  margin: 0 20px 0 0;
}
.product-bundle__img {
  max-width: 100%;
  max-height: 100%;
}
.product-bundle__info {
  min-height: 95px;
  padding-bottom: 5px;
}
.product-bundle__info--configurator {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  padding: 0;
  min-height: 0;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.product-bundle__name {
  font-size: 0.9375rem;
  font-weight: 500;
  line-height: 1.1875rem;
  color: #666666;
}
.product-bundle__quantity {
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1.1875rem;
  color: #8f8f8f;
}
.product-bundle__quantity--cart {
  font-size: 0.8125rem;
  line-height: normal;
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ProductDetailPage/Theme/default/components/molecules/product-bundle-detail/product-bundle-detail.scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.product-bundle-detail {
  border-bottom: solid 1px #e7eaee;
}
.product-bundle-detail__item {
  border-top: solid 1px #e7eaee;
}
.product-bundle-detail__title {
  font-size: 0.875rem;
  font-weight: 400;
  line-height: normal;
  color: #666666;
  padding: 1.125rem 1.25rem;
  cursor: pointer;
  position: relative;
}
.product-bundle-detail__title::before, .product-bundle-detail__title::after {
  content: "";
  position: absolute;
  background: #666666;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
.product-bundle-detail__title::before {
  width: 10px;
  height: 2px;
  right: 19px;
}
.product-bundle-detail__title::after {
  width: 2px;
  height: 10px;
  right: 23px;
}
.product-bundle-detail__title.active {
  background-color: #f0f0f0;
}
.product-bundle-detail__title.active::after {
  display: none;
}
.product-bundle-detail__description {
  font-size: 0.8125rem;
  font-weight: 400;
  color: #666666;
  padding: 0 1.25rem 1.625rem;
  background-color: #f0f0f0;
}
.product-bundle-detail__detail-list {
  background-color: #f0f0f0;
  padding: 0 1.25rem 1.125rem;
}
.product-bundle-detail__detail-list-key {
  font-size: 0.875rem;
  font-weight: 500;
  color: #666666;
}
.product-bundle-detail__detail-list-value {
  font-size: 0.8125rem;
  font-weight: 400;
  color: #8f8f8f;
  padding-bottom: 8px;
}
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ProductDetailPage/Theme/default/components/molecules/product-cms/product-cms.scss ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.product-cms {
  background: transparent;
  text-align: center;
  padding: 1.25rem 0;
}
.product-cms--container {
  padding: 0;
}
.product-cms__title {
  max-width: 970px;
  margin: 0 auto 0.75rem;
  color: #666666;
  font-size: 1.75rem;
  font-weight: 500;
  line-height: 2.0625rem;
}
@media only screen and (max-width: 549px) {
  .product-cms__title {
    font-size: 2rem;
    line-height: 2.375rem;
  }
}
.product-cms__title--full-length {
  max-width: 100%;
}
.product-cms__title--left {
  margin: initial;
}
.product-cms__text {
  max-width: 970px;
  margin: 0 auto;
  font-size: 1.125rem;
  line-height: 1.375rem;
  color: #666666;
}
.product-cms__text p:not(.product-card__price) {
  margin: 0 0 1.125rem;
}
.product-cms__text a {
  color: #666666;
  font-weight: 500;
}
.product-cms__text a:hover {
  color: #E30613;
}
.product-cms__text--full-length {
  max-width: 100%;
}
.product-cms__text--left {
  margin: initial;
}
.product-cms--transparent {
  background: transparent;
}
.product-cms--small {
  padding-top: 0;
  padding-bottom: 0;
}
.product-cms--banner {
  text-align: left;
  padding: 0 0 1.125rem 0;
}
.product-cms--banner .product-cms__title {
  margin: 0 0 0.75rem;
  color: #fff;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
}
.product-cms--banner .product-cms__text {
  margin: initial;
  color: #fff;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
}
.product-cms--banner .product-cms__text a {
  color: #fff;
}
@media only screen and (max-width: 549px) {
  .product-cms--top-padding-m {
    padding-top: 1.875rem;
  }
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ProductDetailPage/Theme/default/components/molecules/product-configurator/product-configurator.scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.product-configurator {
  color: #666666;
  padding-right: 0;
  padding-top: 1.375rem;
  padding-bottom: 1.25rem;
}
@media only screen and (min-width: 769px) {
  .product-configurator {
    padding-right: 3.125rem;
  }
}
.product-configurator__brand-name {
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 1.4375rem;
  color: #666666;
  margin-bottom: 0.1875rem;
}
.product-configurator__sku {
  font-size: 0.875rem;
  font-weight: 400;
  line-height: normal;
  color: #8f8f8f;
  margin-bottom: 1.75rem;
}
.product-configurator__details, .product-configurator__add-to-cart, .product-configurator__compare, .product-configurator__availability, .product-configurator__project-request {
  margin: 0.625rem 0;
}
.product-configurator__info {
  margin-bottom: 0.625rem;
}
.product-configurator__availability .form__actions {
  margin-top: 0;
}
.product-configurator__add-to-cart form {
  margin-bottom: 20px;
}
.product-configurator__add-to-cart .product-configurator__form {
  margin-bottom: 35px;
}
@media print {
  .product-configurator__add-to-cart .product-configurator__form {
    margin-bottom: 20px;
  }
}
.product-configurator__add-to-cart .select__select {
  height: 2.125rem;
}
@media only screen and (max-width: 1203px) {
  .product-configurator__add-to-cart .select__select {
    width: 100% !important;
    min-width: 100px;
  }
}
.product-configurator__add-to-cart-button .icon--cart {
  margin-top: 0;
  height: 1.125rem;
}
.product-configurator__add-to-cart-multi-cart-widget {
  width: calc(100% - 71px);
  min-width: calc(100% - 71px);
}
.product-configurator__add-to-cart .full-width {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}
.product-configurator__add-to-shopping-list-select {
  width: calc(100% - 80px);
  min-width: calc(100% - 80px);
}
.product-configurator__shopping-list-select, .product-configurator__add-to-cart-selector {
  margin-top: 0 !important;
}
.product-configurator__shopping-list-select .select2-container--default, .product-configurator__add-to-cart-selector .select2-container--default {
  max-width: 100%;
}
.product-configurator__shopping-list-select .select2-container--default .select2-selection__rendered, .product-configurator__add-to-cart-selector .select2-container--default .select2-selection__rendered {
  border: 0;
  background: transparent;
  color: #666666;
  height: 1.25rem;
  font-weight: 500;
  line-height: 1.1875rem;
  min-height: 1.25rem;
  padding: 0 2rem 0 0.625rem;
}
.product-configurator__compare {
  margin-bottom: 0.3125rem;
}
.product-configurator__compare a, .product-configurator__print a {
  color: #666666;
}
.product-configurator__compare .icon, .product-configurator__print .icon {
  width: 20px;
}
.product-configurator .price--pdp {
  margin-bottom: 0;
}
.product-configurator .volume-price__price {
  font-size: 1.75rem;
  font-weight: 500;
}
.product-configurator .add-to-cart-selector .select__select {
  border: 0;
  background: transparent;
  color: #666666;
  height: 1.25rem;
  line-height: 1.125rem;
  padding: 0 0.625rem;
}
.product-configurator .input-measurement-unit {
  background-color: #E7E7E7;
  border: 1px solid #dce0e5;
  border-radius: 2px;
  color: #666666;
  cursor: not-allowed;
  font-size: 0.9375rem;
  padding: 0.4375rem 1.875rem 0.4375rem 0.625rem;
  line-height: 1.375rem;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  position: relative;
}
.product-configurator .select-measurement-unit {
  width: 100%;
}
.product-configurator .select-measurement-unit .select2-selection__rendered {
  background-color: #E7E7E7;
  border: 1px solid #dce0e5;
  line-height: 1.1rem;
  width: 100%;
}
@media only screen and (max-width: 1203px) {
  .product-configurator .select-measurement-unit .select2-container {
    width: 100% !important;
    min-width: 100px;
  }
}
.product-configurator .select-measurement-unit .custom-select__caret {
  width: 1rem;
  height: 1rem;
}
.product-configurator .add-to-shopping-list {
  margin-top: 0.625rem;
}
@media only screen and (min-width: 1204px) {
  .product-configurator .add-to-shopping-list {
    margin-top: 0;
  }
}
.product-configurator .login-notice span {
  font-weight: 500;
}
.product-configurator .login-notice i {
  color: #E30613;
}
.product-configurator hr {
  border-bottom: 1px solid #E9E7E7;
  margin-left: 15px;
  margin-right: 15px;
  width: 100%;
}
.product-configurator .no-padding {
  padding: 0;
}
.product-configurator .no-padding {
  padding: 0;
}
@media only screen and (min-width: 1204px) {
  .product-configurator .no-padding {
    padding: 0;
  }
}
.product-configurator .pr5 {
  padding-right: 0.3125rem;
}
.product-configurator .pr10 {
  padding-right: 0.625rem;
}
.product-configurator .pl15 {
  padding-left: 0.9375rem;
}
.product-configurator .pr10 {
  padding-right: 0.625rem;
}
.product-configurator .pl15 {
  padding-left: 0.9375rem;
}
.product-configurator .mt10 {
  margin-top: 0.625rem;
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ProductDetailPage/Theme/default/components/molecules/product-content/product-content.scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.product-content {
  margin-bottom: 20px;
}
.product-content__container {
  -webkit-box-align: inherit;
      -ms-flex-align: inherit;
          align-items: inherit;
}
@media only screen and (min-width: 770px) {
  .product-content {
    background-color: #fff;
  }
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ProductDetailPage/Theme/default/components/molecules/product-detail/product-detail.scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.product-detail {
  font-family: "FrutigerNextPro";
}
.product-detail__title {
  color: #666666;
  line-height: normal;
  margin-bottom: 0.9375rem;
  font-size: 0.9375rem;
}
@media print {
  .product-detail__title {
    margin-bottom: 0;
  }
}
.product-detail__notice, .product-detail__description {
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.8125rem;
}
@media print {
  .product-detail__notice, .product-detail__description {
    line-height: 1.2;
    margin-bottom: 1.875rem;
  }
}
.product-detail__notice, .product-detail__description, .product-detail__product-features {
  margin-top: 1.5625rem;
}
.product-detail__notice ul, .product-detail__description ul, .product-detail__product-features ul {
  list-style: inherit;
  margin-left: 2.5rem;
}
.product-detail__detail-bought-together-detail {
  font-size: 0.9375rem;
}
.product-detail__detail-bought-together-name {
  font-weight: 500;
}
.product-detail__detail-bought-together-total {
  font-weight: 500;
  margin: 1.25rem 0;
}
.product-detail__detail-bought-together .checkbox {
  margin-top: 0.1875rem;
}
.product-detail__detail-list {
  margin-top: 1.875rem;
}
@media print {
  .product-detail__detail-list {
    margin-top: 0;
  }
}
.product-detail__detail-list-item {
  font-size: 0.9375rem;
  padding: 0.3125rem 0;
}
@media print {
  .product-detail__detail-list-item {
    padding: 0;
  }
}
.product-detail__detail-list-item:nth-child(even) {
  background-color: #f0f0f0;
}
.product-detail__detail-list-title {
  font-size: 1.125rem;
}
.product-detail__detail-list-key {
  margin-bottom: 0.3125rem;
  line-height: normal;
}
@media only screen and (min-width: 770px) {
  .product-detail__detail-list-key {
    margin-bottom: 0;
  }
}
.product-detail__detail-list-title, .product-detail__detail-list-key {
  font-weight: 500;
}
@media print {
  .product-detail__detail-list-title, .product-detail__detail-list-key {
    line-height: 1.2;
  }
}
.product-detail__detail-list-value {
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: normal;
}
.product-detail__detail-list-value .fa-check {
  color: #6CA52F;
}
.product-detail__detail-list-value .fa-times {
  color: #E30613;
}
.product-detail__product-features {
  margin-top: 1.5625rem;
}
@media print {
  .product-detail__product-features {
    margin-top: 0.625rem;
  }
}
.product-detail__right {
  margin-top: 1.25rem;
}
@media only screen and (min-width: 770px) {
  .product-detail__right {
    margin-top: 0;
  }
}
@media print {
  .product-detail__right {
    width: 100%;
  }
}
@media only screen and (max-width: 769px) {
  .product-detail > div:first-child {
    margin-top: 0;
  }
}
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ProductDetailPage/Theme/default/components/molecules/product-documents/product-documents.scss ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.product-documents__detail-document {
  font-size: 0.9375rem;
  margin-bottom: 0.3125rem;
}
.product-documents__detail-documents {
  border-bottom: 1px solid #E9E7E7;
  margin-bottom: 0.9375rem;
  padding-bottom: 0.9375rem;
}
.product-documents__detail-document-link {
  color: #666666;
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ProductDetailPage/Theme/default/components/molecules/product-print/product-print.scss ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.product-print__details {
  border-bottom: 1px solid #dce0e5;
  border-top: 1px solid #dce0e5;
  margin-top: 1.25rem;
  padding: 0.9375rem 1.875rem;
}
.product-print__detail-list {
  padding: 1.25rem 3.75rem;
}
.product-print__detail-list-key {
  width: 33.33333%;
}
.product-print__detail-list-value {
  width: 66.66667%;
}
.product-print__green {
  color: #6CA52F;
}
.product-print__red {
  color: #E30613;
}
.product-print__disclaimer {
  margin-top: 1.25rem;
}
@media print {
  .product-print__disclaimer {
    margin-top: 0.3125rem;
  }
}
.product-print__info {
  padding: 0 1.875rem;
}
@media print {
  .product-print .image-gallery {
    width: 58.33333%;
    min-width: 58.33333%;
  }
  .product-print .image-gallery__container, .product-print .image-gallery__item {
    height: 15.625rem;
  }
  .product-print .image-gallery + .col--sm-5 {
    width: 41.66667%;
    min-width: 41.66667%;
  }
  .product-print .product-print__description {
    width: 100%;
  }
}
.product-print .price {
  padding: 0 1.875rem;
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ProductDetailPage/Theme/default/components/molecules/product-print-header/product-print-header.scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.product-print__header {
  border-bottom: 2px solid #dce0e5;
}
@media print {
  .product-print__header {
    border-bottom: inherit;
  }
}
.product-print__header .header__logo {
  text-align: left;
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ProductDetailPage/Theme/default/components/molecules/product-specs/product-specs.scss ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.product-specs {
  font-family: "FrutigerNextPro";
}
.product-specs__detail-content ul {
  list-style: inherit;
  margin-left: 2.5rem;
}
.product-specs__detail-list {
  margin-top: 1.5625rem;
}
@media print {
  .product-specs__detail-list {
    margin-top: 0;
  }
}
.product-specs__detail-list-item {
  font-size: 0.9375rem;
  padding: 0.3125rem 0;
}
@media print {
  .product-specs__detail-list-item {
    padding: 0;
  }
}
.product-specs__detail-list-item:nth-child(even) {
  background-color: #f0f0f0;
}
.product-specs__detail-list-title {
  font-size: 1.125rem;
}
.product-specs__detail-list-key {
  margin-bottom: 0.3125rem;
  line-height: normal;
}
@media only screen and (min-width: 770px) {
  .product-specs__detail-list-key {
    margin-bottom: 0;
  }
}
.product-specs__detail-list-title, .product-specs__detail-list-key {
  font-weight: 500;
}
@media print {
  .product-specs__detail-list-title, .product-specs__detail-list-key {
    line-height: 1.2;
  }
}
.product-specs__detail-list-value {
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: normal;
}
.product-specs__detail-list-value .fa-check {
  color: #6CA52F;
}
.product-specs__detail-list-value .fa-times {
  color: #E30613;
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ProductDetailPage/Theme/default/components/molecules/product-tabs/product-tabs.scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@charset "UTF-8";
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.product-tabs {
  margin-bottom: 1.875rem;
}
@media only screen and (min-width: 770px) {
  .product-tabs {
    background-color: #fff;
  }
}
.product-tabs__navigation {
  padding: 1.25rem 0;
}
.product-tabs__link {
  border-right: 1px solid #D8D8D8;
  cursor: pointer;
  font-size: 1.125rem;
  font-weight: 400;
  padding: 0.4375rem 3.75rem 0 2.5rem;
  position: relative;
}
.product-tabs__link:last-child {
  border-right: 0;
}
.product-tabs__link.is-active {
  font-weight: 500;
}
.product-tabs__link:after {
  content: "»";
  font-size: 1.25rem;
  -webkit-transform: rotate(90deg);
          transform: rotate(90deg);
  position: absolute;
  right: 42px;
  top: 5px;
}
.product-tabs__container {
  border-top: 1px solid #E9E7E7;
}
@media only screen and (min-width: 770px) {
  .product-tabs__container {
    border: 0;
    display: none;
  }
}
.product-tabs__container.is-active {
  display: block;
  margin-left: 0;
}
.product-tabs__container.is-active .product-tabs__content {
  display: block;
  overflow-y: auto;
  overflow-x: hidden;
}
.product-tabs__container.is-active .product-tabs__tab-header-open {
  display: none;
}
.product-tabs__container.is-active .product-tabs__tab-header-close {
  display: inline-block;
}
.product-tabs__content {
  display: none;
}
@media only screen and (min-width: 770px) {
  .product-tabs__content {
    padding: 1.875rem 0.9375rem 1.875rem 2.5rem;
  }
}
.product-tabs__tab-header {
  cursor: pointer;
  padding: 0.9375rem 0;
}
.product-tabs__tab-header-text {
  margin-left: 0.3125rem;
}
.product-tabs__tab-header-close {
  display: none;
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ProductDetailPage/Theme/default/components/molecules/variant/variant.scss ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.variant {
  border-top: solid 1px #e7eaee;
}
.variant:last-child {
  border-bottom: solid 1px #e7eaee;
  margin-bottom: -1px;
}
.variant--promotion {
  position: relative;
  z-index: 2;
  border: none;
}
.variant--promotion:last-child {
  margin-bottom: 0;
  border-bottom: none;
}
.variant__title {
  font-size: 1rem;
  font-weight: 500;
  line-height: 3.375rem;
  color: #666666;
  position: relative;
}
.variant__selected-value {
  font-size: 0.875rem;
  font-weight: 400;
  line-height: normal;
  color: #8f8f8f;
  margin: -5px 0 15px;
}
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/atoms/cms-page-title/cms-page-title.scss ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.cms-page-title * {
  font: 500 1.75rem/2.25rem "FrutigerNextPro";
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/atoms/overlay-block/overlay-block.scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.overlay-block {
  background: rgba(102, 102, 102, 0.4);
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 350;
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
  -webkit-transition: visibility 250ms ease-in-out, opacity 250ms ease-in-out;
  transition: visibility 250ms ease-in-out, opacity 250ms ease-in-out;
}
.overlay-block--is-shown {
  pointer-events: all;
  visibility: visible;
  opacity: 1;
}
.overlay-block--no-search, .overlay-block--no-agent-user {
  z-index: 699;
}
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/atoms/quantity-option/quantity-option.scss ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.quantity-option {
  font-size: 0.8125rem;
  font-weight: 500;
}
@media only screen and (min-width: 768px) {
  .quantity-option {
    font-size: 0.875rem;
  }
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/atoms/switch/switch.scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.switch {
  display: block;
  position: relative;
  width: 2.125rem;
  height: 0.875rem;
  background-color: rgba(220, 224, 229, 0.6);
  border-radius: 0.4375rem;
  overflow: visible;
  margin: 0.1875rem 0 0.1875rem 0.625rem;
  -webkit-transition: margin-left 250ms ease-in-out, background-color 250ms ease-in-out;
  transition: margin-left 250ms ease-in-out, background-color 250ms ease-in-out;
}
.switch__handle {
  display: block;
  position: absolute;
  width: 1.25rem;
  height: 1.25rem;
  margin: -0.1875rem 0 0 -0.625rem;
  border-radius: 50%;
  background-color: #fff;
  -webkit-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.2);
          box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.2);
  left: 0;
  top: 0;
  -webkit-transition: left 250ms ease-in-out, background-color 250ms ease-in-out;
  transition: left 250ms ease-in-out, background-color 250ms ease-in-out;
}
.switch--active {
  background-color: rgba(227, 6, 19, 0.5);
  margin-left: 0;
}
.switch--active .switch__handle {
  left: 100%;
  background-color: #E30613;
}
.switch[disabled] {
  opacity: 0.5;
  cursor: not-allowed;
}
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/organisms/account-navigation/account-navigation.scss ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.side-drawer {
  position: relative;
  z-index: 500;
}
@media only screen and (min-width: 1024px) {
  .side-drawer {
    display: none;
  }
}
.side-drawer__overlay {
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
  -webkit-transition: visibility 250ms ease-in-out, opacity 250ms ease-in-out;
  transition: visibility 250ms ease-in-out, opacity 250ms ease-in-out;
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background-color: rgba(102, 102, 102, 0.4);
}
.side-drawer__drawer {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-shadow: 0 2px 5px 1px rgba(0, 0, 0, 0.1);
          box-shadow: 0 2px 5px 1px rgba(0, 0, 0, 0.1);
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
  -webkit-transition: top 250ms ease-in-out, visibility 250ms ease-in-out, opacity 250ms ease-in-out;
  transition: top 250ms ease-in-out, visibility 250ms ease-in-out, opacity 250ms ease-in-out;
  position: fixed;
  top: -100%;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #fff;
  padding: 1.25rem 0;
  overflow: hidden;
}
@media only screen and (min-width: 550px) {
  .side-drawer__drawer {
    -webkit-transition: left 250ms ease-in-out, visibility 250ms ease-in-out, opacity 250ms ease-in-out;
    transition: left 250ms ease-in-out, visibility 250ms ease-in-out, opacity 250ms ease-in-out;
    top: 0;
    left: -23.4375rem;
    width: 23.4375rem;
  }
}
.side-drawer__holder {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  overflow: hidden;
  overflow-y: auto;
  padding: 0 0.8125rem;
}
.side-drawer__close {
  position: absolute;
  left: 0.625rem;
  top: 1.125rem;
  width: 2.5rem;
  height: 1.875rem;
  background: none;
}
.side-drawer__navigation-top {
  padding: 0 0.8125rem 0.625rem 3.375rem;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
@media only screen and (min-width: 768px) {
  .side-drawer__navigation-top {
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
  }
}
@media only screen and (min-width: 1024px) {
  .side-drawer__navigation-top-actions {
    display: none;
  }
}
.side-drawer__user-link {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  padding: 0.75rem 0;
  font-weight: 500;
  line-height: 1rem;
  font-size: 0.625rem;
  letter-spacing: 0.0375rem;
  text-transform: uppercase;
}
.side-drawer__user-link-icon {
  margin-right: 0.625rem;
}
.side-drawer__navigation {
  padding-bottom: 0.9375rem;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}
.side-drawer__info {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  padding-bottom: 1.5625rem;
}
.side-drawer__contact {
  display: block;
  padding: 1rem 0.9375rem 1rem 4rem;
  border-radius: 0.125rem;
  border: 0.0625rem solid #dce0e5;
  color: #666666;
  position: relative;
}
.side-drawer__contact-icon {
  position: absolute;
  left: 1.25rem;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
.side-drawer__contact-text {
  display: block;
  font-size: 0.875rem;
  line-height: 1.2;
}
.side-drawer__contact-text--weight {
  font-weight: 500;
}
.side-drawer--show .side-drawer__overlay {
  pointer-events: all;
  visibility: visible;
  opacity: 1;
}
.side-drawer--show .side-drawer__drawer {
  pointer-events: all;
  visibility: visible;
  opacity: 1;
  left: 0;
  top: 0;
}

.account-navigation {
  position: relative;
  z-index: 500;
}
@media only screen and (min-width: 1024px) {
  .account-navigation {
    display: none;
  }
}
.account-navigation__overlay {
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
  -webkit-transition: visibility 250ms ease-in-out, opacity 250ms ease-in-out;
  transition: visibility 250ms ease-in-out, opacity 250ms ease-in-out;
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background-color: rgba(102, 102, 102, 0.4);
}
.account-navigation__drawer {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-shadow: 0 2px 5px 1px rgba(0, 0, 0, 0.1);
          box-shadow: 0 2px 5px 1px rgba(0, 0, 0, 0.1);
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
  -webkit-transition: top 250ms ease-in-out, visibility 250ms ease-in-out, opacity 250ms ease-in-out;
  transition: top 250ms ease-in-out, visibility 250ms ease-in-out, opacity 250ms ease-in-out;
  position: fixed;
  top: -100%;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #fff;
  padding: 1.25rem 0;
  overflow: hidden;
}
@media only screen and (min-width: 550px) {
  .account-navigation__drawer {
    -webkit-transition: left 250ms ease-in-out, visibility 250ms ease-in-out, opacity 250ms ease-in-out;
    transition: left 250ms ease-in-out, visibility 250ms ease-in-out, opacity 250ms ease-in-out;
    top: 0;
    left: -23.4375rem;
    width: 23.4375rem;
  }
}
.account-navigation__holder {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  overflow: hidden;
  overflow-y: auto;
  padding: 0 0.8125rem;
}
.account-navigation__close {
  position: absolute;
  left: 0.625rem;
  top: 1.125rem;
  width: 2.5rem;
  height: 1.875rem;
  background: none;
}
.account-navigation__navigation-top {
  padding: 0 0.8125rem 0.625rem 3.375rem;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
@media only screen and (min-width: 768px) {
  .account-navigation__navigation-top {
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
  }
}
@media only screen and (min-width: 1024px) {
  .account-navigation__navigation-top-actions {
    display: none;
  }
}
.account-navigation__user-link {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  padding: 0.75rem 0;
  font-weight: 500;
  line-height: 1rem;
  font-size: 0.625rem;
  letter-spacing: 0.0375rem;
  text-transform: uppercase;
}
.account-navigation__user-link-icon {
  margin-right: 0.625rem;
}
.account-navigation__navigation {
  padding-bottom: 0.9375rem;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}
.account-navigation__info {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  padding-bottom: 1.5625rem;
}
.account-navigation__contact {
  display: block;
  padding: 1rem 0.9375rem 1rem 4rem;
  border-radius: 0.125rem;
  border: 0.0625rem solid #dce0e5;
  color: #666666;
  position: relative;
}
.account-navigation__contact-icon {
  position: absolute;
  left: 1.25rem;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
.account-navigation__contact-text {
  display: block;
  font-size: 0.875rem;
  line-height: 1.2;
}
.account-navigation__contact-text--weight {
  font-weight: 500;
}
.account-navigation--show .account-navigation__overlay {
  pointer-events: all;
  visibility: visible;
  opacity: 1;
}
.account-navigation--show .account-navigation__drawer {
  pointer-events: all;
  visibility: visible;
  opacity: 1;
  left: 0;
  top: 0;
}
@media only screen and (min-width: 768px) {
  .account-navigation {
    display: none;
  }
}
.account-navigation__drawer {
  -webkit-transition: right 250ms ease-in-out, visibility 250ms ease-in-out, opacity 250ms ease-in-out;
  transition: right 250ms ease-in-out, visibility 250ms ease-in-out, opacity 250ms ease-in-out;
  width: 20rem;
  left: auto;
  padding-top: 0;
  right: -20rem;
  top: 0;
}
.account-navigation--show .account-navigation__drawer {
  left: auto;
  right: 0;
}
.account-navigation__close {
  right: 0;
  top: 0.625rem;
  left: auto;
  color: #fff;
}
.account-navigation__account {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 1rem 3.125rem 1rem 1.5rem;
  color: #fff;
  background: #E30613;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
.account-navigation__account--company {
  background: #E30613;
}
.account-navigation__account-icon {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  margin-right: 1.875rem;
}
.account-navigation__account-text {
  font-size: 0.875rem;
  line-height: 0.875rem;
  font-weight: 500;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
}
.account-navigation__holder {
  padding: 0 1.25rem;
}
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/organisms/footer/footer.scss ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.footer {
  background-color: #fff;
}
@media print {
  .footer {
    display: none;
  }
}
.footer__navigation-block {
  min-height: 19.25rem;
  padding-top: 1.6875rem;
  padding-bottom: 1.6875rem;
}
@media only screen and (max-width: 549px) {
  .footer__navigation-block {
    min-height: 0;
    padding-bottom: 0;
    padding-top: 0rem;
  }
}
@media only screen and (min-width: 550px) {
  .footer__subscribe {
    padding-top: 1.25rem;
    padding-bottom: 2rem;
  }
}
@media only screen and (min-width: 768px) {
  .footer__subscribe {
    padding-top: 3.125rem;
    padding-bottom: 3.125rem;
  }
}
@media only screen and (min-width: 1024px) {
  .footer__subscribe {
    padding-top: 4.8125rem;
    padding-bottom: 4.8125rem;
  }
}
.footer__logos {
  background-color: #fff;
  padding: 2.875rem 0;
}
@media only screen and (min-width: 768px) {
  .footer__logos {
    padding-bottom: 1.625rem;
  }
}
@media only screen and (max-width: 549px) {
  .footer__contact-info {
    -webkit-box-shadow: 0px -1rem 0px -0.9375rem #B3B3B3;
            box-shadow: 0px -1rem 0px -0.9375rem #B3B3B3;
  }
}
.footer__contact-info-item {
  -webkit-transition: color 250ms ease-in-out;
  transition: color 250ms ease-in-out;
  font-size: 0.9375rem;
  line-height: 1.3125rem;
  letter-spacing: 0.0125rem;
  color: #666666;
}
.footer__phone {
  display: block;
}
.footer__social-buttons {
  margin-top: 1.125rem;
  margin-bottom: 1.125rem;
}
@media only screen and (max-width: 549px) {
  .footer__social-buttons {
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
  }
}
@media only screen and (min-width: 550px) {
  .footer__social-buttons {
    margin-top: 2.625rem;
    margin-bottom: 2.9375rem;
  }
}
.footer__hint {
  font-size: 0.8125rem;
  line-height: 1rem;
  color: #666666;
  letter-spacing: 0.03375rem;
  padding-bottom: 0.75rem;
}
.footer__thanks-certeo {
  font-size: 0.8125rem;
  line-height: 1rem;
  color: #8f8f8f;
  letter-spacing: 0.03375rem;
}
.footer__copyright {
  background-color: #0064b4;
  text-align: center;
  color: #fff;
}
.footer__rma {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
}
.footer__icon {
  margin-right: 0.375rem;
  margin-top: 0.125rem;
}
.footer__price-mode {
  text-align: center;
}
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/organisms/order-sidebar/order-sidebar.scss ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.order-sidebar__item {
  background-color: #f0f0f0;
  margin-top: 0.3125rem;
  padding: 1.0625rem 1.25rem;
  font-size: 0.875rem;
  font-weight: 500;
  border-radius: 2px;
}
@media only screen and (min-width: 768px) {
  .order-sidebar__item {
    margin-top: 0.625rem;
  }
}
.order-sidebar__item--summary {
  margin-top: 1.25rem;
  border-radius: 0;
  padding: 0;
  background: none;
}
.order-sidebar__item--start, .order-sidebar__item--end {
  margin: 0 -0.9375rem;
  padding-left: 0.9375rem;
  padding-right: 0.9375rem;
}
@media only screen and (min-width: 768px) {
  .order-sidebar__item--start, .order-sidebar__item--end {
    margin: 0;
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }
}
.order-sidebar__item--start {
  padding-bottom: 0.625rem;
  border-radius: 2px 2px 0 0;
  border-bottom: 0.0625rem solid #dce0e5;
}
@media only screen and (min-width: 768px) {
  .order-sidebar__item--start {
    padding-bottom: 1.0625rem;
  }
}
.order-sidebar__item--end {
  border-radius: 0 0 2px 2px;
  padding-top: 0;
  padding-bottom: 2.0625rem;
}
@media only screen and (min-width: 768px) {
  .order-sidebar__item--end {
    padding-bottom: 1.0625rem;
  }
}
.order-sidebar__item--approve-request:last-of-type {
  margin-bottom: 1.25rem;
}
.order-sidebar__item:first-child {
  margin-top: 0;
}
.order-sidebar__item .label {
  display: none;
}
.order-sidebar__item .input,
.order-sidebar__item .textarea {
  font-size: 0.8125rem;
  font-weight: 400;
  line-height: 0.9375rem;
  color: #8f8f8f;
  border-radius: 2px;
  border: none;
  -webkit-box-shadow: 0 0.625rem 0.625rem 0 rgba(0, 0, 0, 0.05), 0 0.1875rem 0.1875rem 0 rgba(0, 0, 0, 0.05);
          box-shadow: 0 0.625rem 0.625rem 0 rgba(0, 0, 0, 0.05), 0 0.1875rem 0.1875rem 0 rgba(0, 0, 0, 0.05);
}
@media only screen and (min-width: 768px) {
  .order-sidebar__item .input,
  .order-sidebar__item .textarea {
    padding-top: 0.9375rem;
    padding-bottom: 0.9375rem;
  }
}
.order-sidebar__item .textarea {
  min-height: 7.4375rem;
  line-height: 1.125rem;
  max-width: 100%;
  padding: 1.0625rem 1.25rem 1.125rem;
}
@media only screen and (min-width: 768px) {
  .order-sidebar__item .textarea {
    min-height: 5.375rem;
  }
}
.order-sidebar__item .custom-select .custom-select__select,
.order-sidebar__item .select2-container--default .select2-selection__rendered {
  border-radius: 2px;
  border: none;
  -webkit-box-shadow: 0 0.625rem 0.625rem 0 rgba(0, 0, 0, 0.05), 0 0.1875rem 0.1875rem 0 rgba(0, 0, 0, 0.05);
          box-shadow: 0 0.625rem 0.625rem 0 rgba(0, 0, 0, 0.05), 0 0.1875rem 0.1875rem 0 rgba(0, 0, 0, 0.05);
  line-height: 3.125rem;
  background: #fff;
}
@media only screen and (min-width: 768px) {
  .order-sidebar__item .custom-select .custom-select__select,
  .order-sidebar__item .select2-container--default .select2-selection__rendered {
    line-height: 2.8125rem;
  }
}
.order-sidebar__title {
  font-size: 0.875rem;
  line-height: 1.125rem;
  font-weight: 500;
}
.order-sidebar__title--space-bottom {
  margin-bottom: 0.5rem;
}
.order-sidebar__text {
  font-size: 0.875rem;
  letter-spacing: -0.00625rem;
  font-weight: 400;
}
@media only screen and (min-width: 768px) {
  .order-sidebar__text {
    letter-spacing: 0;
    font-size: 0.8125rem;
  }
}
.order-sidebar__content {
  margin-top: 1.125rem;
}
.order-sidebar__content .form__field {
  padding-top: 0;
}
.order-sidebar__content .form__actions {
  text-align: left;
  margin-top: 0;
}
.order-sidebar__content .form__action {
  margin-top: 0.1875rem;
  margin-left: 0;
  width: 100%;
}
@media only screen and (min-width: 768px) {
  .order-sidebar__content .form__action {
    margin-top: 0.75rem;
    width: auto;
  }
}
.order-sidebar__order {
  margin-bottom: 0.375rem;
}
.order-sidebar__quantity {
  background-color: rgba(102, 102, 102, 0.3);
  border-radius: 2px;
  font-size: 0.6875rem;
  line-height: normal;
  color: #8f8f8f;
  padding: 0.3125rem 0.5rem;
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/action-card/action-card.scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.action-card {
  background-color: #f0f0f0;
  padding: 1.25rem;
  height: 100%;
  width: 100%;
}
@media only screen and (min-width: 768px) {
  .action-card {
    padding: 1.3125rem 1.875rem;
  }
}
.action-card__header {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.action-card__title {
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  margin-bottom: 20px;
  color: #666666;
  text-overflow: ellipsis;
  white-space: nowrap;
}
@media (max-width: 1138px) {
  .action-card__title {
    overflow: hidden;
  }
}
.action-card__actions {
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
.action-card__content {
  font-size: 15px;
  line-height: 22px;
  color: #8f8f8f;
}
.action-card__list {
  list-style: inherit;
  margin-left: 1.25rem;
}
.action-card__text {
  color: #666666;
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/action-card-grid/action-card-grid.scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.action-card-grid {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  margin: -0.5rem;
  width: calc(100% + 1rem);
}
@media only screen and (min-width: 768px) {
  .action-card-grid {
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
  }
}
.action-card-grid__card {
  width: 100%;
  padding: 0.5rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
@media only screen and (min-width: 768px) {
  .action-card-grid__card {
    width: 50%;
  }
}
@media only screen and (min-width: 768px) {
  .action-card-grid__card--small {
    width: 33.33%;
  }
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/add-to-cart/add-to-cart.scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.add-to-cart input {
  text-align: center;
  line-height: 0.0625rem;
  padding: 0.5625rem;
  max-width: 100%;
}
@media only screen and (max-width: 1203px) {
  .add-to-cart__button {
    margin-top: 0.625rem;
  }
}
.add-to-cart__button {
  padding-left: 0.625rem;
  padding-right: 0.625rem;
}
.add-to-cart__button .icon--cart {
  margin-bottom: 0.25rem;
}
.add-to-cart__quantity--catalog-page {
  width: 100%;
}
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/add-to-cart-extended/add-to-cart-extended.scss ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.add-to-cart-extended .add-to-cart__quantity--extended {
  width: 100%;
}
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/availability/availability.scss ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.availability-note {
  margin: 0.9375rem 0;
}
.availability-note--pdp {
  margin-top: 0;
  margin-bottom: 0.0625rem;
}
.availability-note--catalog-list, .availability-note--shopping-list {
  margin: 0;
}
.availability-note--product-card {
  font-size: 0.875rem;
  display: inline-block;
  position: relative;
  float: right;
  margin: 0.375rem 0 0 0;
}
.availability-note__text-icon {
  color: #6CA52F;
  margin-top: 0.25rem;
  margin-right: 0.1875rem;
}
.availability-note__text-icon.not-available {
  color: #E30613;
}
.availability-note__text-icon.partially-available {
  color: #fdbe36;
}
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/banner/banner.scss ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.banner {
  overflow: hidden;
  height: 12.5rem;
  margin-bottom: 0.625rem;
}
@media only screen and (min-width: 768px) {
  .banner {
    height: 28.125rem;
    margin-bottom: 1.875rem;
  }
}
.banner--medium {
  height: 25rem;
}
.banner--small {
  height: 12.5rem;
}
@media only screen and (min-width: 768px) {
  .banner--small {
    height: 21.25rem;
  }
}
.banner--category {
  height: auto;
}
.banner--category .grid {
  min-height: 11.25rem;
}
@media only screen and (max-width: 1204px) {
  .banner--category {
    display: none;
  }
}
.banner--success {
  height: auto;
  margin-bottom: 0.9375rem;
}
@media only screen and (min-width: 768px) {
  .banner--success {
    height: 28.125rem;
    margin-bottom: 2.5rem;
  }
}
.banner--color-second {
  color: #fff;
}
.banner__container {
  min-height: 100%;
  background-color: #E30613;
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  text-align: left;
  position: relative;
  padding: 1.875rem;
}
@media only screen and (min-width: 768px) {
  .banner__container {
    text-align: left;
  }
}
.banner__container--success {
  margin: 0;
  padding: 1.25rem 0.9375rem 1.625rem;
}
@media only screen and (min-width: 768px) {
  .banner__container--success {
    padding-top: 0;
    padding-bottom: 0;
  }
}
.banner__title, .banner__text {
  color: #fff;
}
.banner__title {
  font-size: 1.625rem;
  line-height: 1.875rem;
  font-weight: 500;
  margin-bottom: 0.625rem;
}
@media only screen and (min-width: 768px) {
  .banner__title {
    font-size: 1.875rem;
    line-height: 1.875rem;
    margin-bottom: 0.8125rem;
  }
}
.banner__text {
  font-size: 1rem;
  line-height: normal;
  font-weight: 400;
  margin-bottom: 1.625rem;
}
@media only screen and (min-width: 768px) {
  .banner__text {
    font-size: 1.125rem;
    margin-bottom: 2.1875rem;
  }
}
.banner__text--subtitle {
  font-family: "FrutigerNextPro";
  font-weight: 500;
}
@media only screen and (min-width: 768px) {
  .banner__text--subtitle {
    font-size: 2.375rem;
    line-height: 2.5rem;
  }
}
.banner__success-title {
  font-size: 2rem;
  line-height: 2.125rem;
  color: #fff;
  margin-bottom: 0.6875rem;
}
@media only screen and (min-width: 768px) {
  .banner__success-title {
    margin-bottom: 2rem;
    font-size: 3.125rem;
    line-height: 3.4375rem;
  }
}
.banner__success-text {
  font-size: 1.125rem;
  letter-spacing: 0.01875rem;
}
@media only screen and (min-width: 768px) {
  .banner__success-text {
    font-size: 1.375rem;
    letter-spacing: 0.025rem;
  }
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/brand-item/brand-item.scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.brand-item__container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  height: 3.75rem;
  min-height: 3.75rem;
  -ms-flex-line-pack: center;
      align-content: center;
}
.brand-item__image {
  max-width: 9.6875rem;
  max-height: 3.75rem;
}
@media only screen and (max-width: 549px) {
  .brand-item__image {
    max-width: 100%;
  }
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/breadcrumb/breadcrumb.scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.breadcrumb {
  font-size: 0.9375rem;
}
.breadcrumb--progress {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
@media only screen and (min-width: 768px) {
  .breadcrumb--progress {
    padding: 1rem 0;
  }
}
.breadcrumb--progress .breadcrumb-step {
  margin: 0;
  width: 25%;
}
@media only screen and (min-width: 768px) {
  .breadcrumb--progress .breadcrumb-step {
    margin: 0 1.8125rem;
    width: auto;
  }
}
.breadcrumb--progress-step, .breadcrumb--progress-complete {
  font-size: 1.125rem;
  line-height: normal;
  margin: 0 1.8125rem;
}
.breadcrumb--progress-complete {
  color: #E30613;
}
.breadcrumb--progress-complete .breadcrumb-step__link {
  color: inherit;
  margin-left: 0.25rem;
}
.breadcrumb--mb {
  margin-bottom: 1.5625rem;
}
@media only screen and (max-width: 969px) {
  .breadcrumb--mb {
    margin-bottom: 0;
  }
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/content-collapser/content-collapser.scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.content-collapser--full-visible .content-collapser__container {
  max-height: none;
  margin-bottom: 0;
}
.content-collapser--full-visible .content-collapser__container::after {
  display: none;
}
.content-collapser--full-visible .content-collapser__trigger-holder {
  display: none;
}
.content-collapser__container {
  position: relative;
  max-height: 13.75rem;
  overflow: hidden;
}
@media only screen and (min-width: 768px) {
  .content-collapser__container {
    max-height: none;
  }
}
.content-collapser__container::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 5rem;
  -webkit-box-shadow: inset 0 -3.125rem 5rem 0 #fff;
          box-shadow: inset 0 -3.125rem 5rem 0 #fff;
}
@media only screen and (min-width: 768px) {
  .content-collapser__container::after {
    display: none;
  }
}
.content-collapser__container--with-background::after {
  -webkit-box-shadow: inset 0 -3.125rem 5rem 0 #f0f0f0;
          box-shadow: inset 0 -3.125rem 5rem 0 #f0f0f0;
}
.content-collapser__trigger-holder {
  text-align: center;
  padding-bottom: 1.625rem;
  padding-top: 1.625rem;
}
.content-collapser__trigger-holder--with-background {
  background: #f0f0f0;
}
@media only screen and (min-width: 768px) {
  .content-collapser__trigger-holder {
    display: none;
  }
}
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/copyright-build-with/copyright-build-with.scss ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.copyright-build-with {
  font: 500 0.75rem/0.9375rem "FrutigerNextPro";
  letter-spacing: 0.041875rem;
  text-transform: uppercase;
  padding-top: 1.1875rem;
  padding-bottom: 1.3125rem;
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.copyright-build-with__text {
  margin-right: 1.125rem;
  padding-top: 0.75rem;
}
.copyright-build-with__link {
  color: #fff;
}
.copyright-build-with__link:hover, .copyright-build-with__link:focus {
  color: #fff;
}
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/custom-select/custom-select.scss ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.custom-select {
  position: relative;
  max-width: 100%;
  display: inline-block;
}
.custom-select__select {
  border-radius: 2px;
  border: 0.0625rem solid #dce0e5;
  color: #666666;
  background: #fff;
  font: 400 0.9375rem/2.875rem "FrutigerNextPro";
  padding: 0 2.8125rem 0 1.25rem;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}
@media only screen and (min-width: 768px) {
  .custom-select__select {
    padding: 0 2.8125rem 0 1.25rem;
    font-size: 0.875rem;
  }
}
.custom-select__caret {
  position: absolute;
  z-index: 1;
  top: 50%;
  right: 1.3125rem;
  width: 0.75rem;
  height: 0.4375rem;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  pointer-events: none;
}
@media only screen and (min-width: 768px) {
  .custom-select__caret {
    right: 1.3125rem;
  }
}
.custom-select--different-mob-caret .custom-select__caret {
  width: 0.4375rem;
  height: 0.6875rem;
}
@media only screen and (min-width: 768px) {
  .custom-select--different-mob-caret .custom-select__caret {
    width: 0.75rem;
    height: 0.4375rem;
  }
}
.custom-select--alternative {
  text-transform: uppercase;
  width: 100%;
}
@media only screen and (min-width: 768px) {
  .custom-select--alternative {
    width: auto;
  }
}
.custom-select--alternative .custom-select__select {
  text-transform: uppercase;
  border-radius: 0;
  background: none;
  border: none;
  color: #666666;
  font-size: 0.6875rem;
  line-height: 1.875rem;
  font: 0.9375rem "FrutigerNextPro";
  letter-spacing: 0.0375rem;
  padding: 0 1.375rem 0 0.75rem;
}
@media only screen and (min-width: 768px) {
  .custom-select--alternative .custom-select__select {
    width: auto;
    text-transform: uppercase;
    border-radius: 0;
    background: rgba(255, 255, 255, 0);
    border: none;
    color: #666666;
    font: 400 0.9375rem "FrutigerNextPro";
    letter-spacing: 0.0375rem;
    padding: 0 1.875rem 0 1.125rem;
  }
}
.custom-select--alternative .custom-select__caret {
  width: 0.4375rem;
  height: 0.6875rem;
  right: 0.625rem;
}
@media only screen and (min-width: 768px) {
  .custom-select--alternative .custom-select__caret {
    right: 0.8125rem;
    width: 0.4375rem;
    height: 0.25rem;
    -webkit-transform: translateY(-0.125rem);
            transform: translateY(-0.125rem);
  }
}
.custom-select--company-switcher .select2-selection__rendered {
  padding-right: 1.875rem !important;
}
.custom-select--bold .custom-select__select,
.custom-select--bold .select2-selection__rendered {
  font-weight: 500;
  padding-left: 0.375rem;
  padding-right: 1rem;
  background: transparent;
  border: none;
  font-size: 0.9375rem;
  line-height: 1.125rem;
  color: #666666;
  text-transform: initial;
}
.custom-select--bold .custom-select__caret {
  right: 0.25rem;
  -webkit-transform: translateY(0.0625rem);
          transform: translateY(0.0625rem);
}
.custom-select--small .custom-select__select, .custom-select--quantity .custom-select__select {
  font-size: 0.875rem;
  line-height: 2.375rem;
  font-weight: 500;
}
@media only screen and (min-width: 768px) {
  .custom-select--small .custom-select__select, .custom-select--quantity .custom-select__select {
    font-size: 0.875rem;
    font-weight: 400;
  }
}
@media only screen and (min-width: 768px) {
  .custom-select--small .custom-select__caret, .custom-select--quantity .custom-select__caret {
    width: 0.5625rem;
    height: 0.3125rem;
  }
}
.custom-select--mobile-expand {
  width: 100%;
}
@media only screen and (min-width: 768px) {
  .custom-select--mobile-expand {
    width: auto;
  }
}
.custom-select--mobile-expand .custom-select__select {
  width: 100%;
}
@media only screen and (min-width: 768px) {
  .custom-select--mobile-expand .custom-select__select {
    width: auto;
  }
}
.custom-select--full-width {
  width: 100%;
}
.custom-select--full-width .custom-select__select {
  width: 100%;
}
.custom-select--margin-bottom {
  margin-bottom: 1.3125rem;
}
.custom-select--shopping-list {
  margin-top: 0.75rem;
}
@media only screen and (min-width: 1024px) {
  .custom-select--shopping-list {
    margin-left: 8.25rem;
    width: calc(100% - 132px);
  }
}
.custom-select--light .custom-select__select,
.custom-select--light .select2-selection__rendered {
  background: #f0f0f0;
}
@media only screen and (min-width: 768px) {
  .custom-select--light .custom-select__select,
  .custom-select--light .select2-selection__rendered {
    background: #fff;
  }
}
.custom-select--light .custom-select__caret {
  top: 50%;
  right: 0.625rem;
  width: 0.5rem;
}
.custom-select--quantity {
  width: 100%;
}
.custom-select--quantity .select2-selection__rendered {
  border: 1px solid #dce0e5;
  border-radius: 0;
  min-height: 2.375rem;
  overflow: hidden;
}
.custom-select--quantity .select__caret {
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
.custom-select--quantity .select2-results__option {
  padding: 0;
}
.custom-select--quantity .select2-results__option[aria-selected=true]::before {
  display: none;
}
.custom-select--quick-order-page .select2-selection__rendered {
  border: 0;
  background: transparent;
  color: #666666;
  height: 1.25rem;
  font-weight: 500;
  line-height: 1.1875rem !important;
  min-height: 1.25rem !important;
  padding: 0;
}

.select2-selection__rendered {
  display: block;
  border-radius: 2px;
  border: 0.0625rem solid #B3B3B3;
  color: #666666;
  background: #fff;
  font: 400 0.9375rem/2.875rem "FrutigerNextPro";
  padding: 0 2.8125rem 0 1.25rem;
  cursor: pointer;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  min-height: 1.875rem;
  line-height: 1.875rem;
}
.select2-selection__arrow {
  display: none;
}
.select2-hidden-accessible {
  border: 0;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  height: 0.0625rem;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 0.0625rem;
  white-space: nowrap;
}
.select2-container {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  display: inline-block;
  margin: 0;
  position: relative;
  vertical-align: middle;
}
.select2-container--alternative .select2-selection__rendered {
  border-radius: 0;
  border: none;
  color: #666666;
  background: none;
  font-size: 0.9375rem;
  line-height: 1.875rem;
  height: 1.875rem;
  letter-spacing: 0.0375rem;
  padding: 0 1.375rem 0 0.75rem;
}
.select2-container--alternative .select2-dropdown {
  padding: 0.6875rem 0 0.75rem 1.1875rem;
  border-radius: 0 0 2px 2px;
  -webkit-box-shadow: 0 1.125rem 1.125rem 0 rgba(0, 0, 0, 0.05), 0 0.1875rem 0.1875rem 0 rgba(0, 0, 0, 0.05);
          box-shadow: 0 1.125rem 1.125rem 0 rgba(0, 0, 0, 0.05), 0 0.1875rem 0.1875rem 0 rgba(0, 0, 0, 0.05);
}
.select2-container--alternative .select2-results__option {
  padding: 0;
  font-size: 0.8125rem;
}
.select2-container--alternative .select2-results__option[aria-selected=true]::before {
  display: none;
}
.select2-container--small .select2-selection__rendered, .select2-container--quantity .select2-selection__rendered {
  font-size: 0.9375rem;
  line-height: 1rem;
  padding: 0.5rem 1.875rem 0.5rem 0.6875rem;
}
.select2-container--small .select2-results__option, .select2-container--quantity .select2-results__option {
  font-size: 0.875rem;
}
.select2-container--default .select2-selection__rendered {
  min-height: 3rem;
  line-height: 3rem;
}
.select2-container--disabled .select2-selection__rendered {
  background: #f0f0f0;
  cursor: not-allowed;
}
.select2-container--quantity .select2-dropdown {
  padding: 0.3125rem 0.1875rem;
}
.select2-dropdown {
  position: absolute;
  z-index: 1000;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  display: block;
  border: none;
  margin: 0;
  padding: 0.9375rem 1.25rem 0.9375rem 0.9375rem;
  border-radius: 2px;
  background: #fff;
  -webkit-box-shadow: 0 1.125rem 1.125rem 0 rgba(0, 0, 0, 0.05), 0 0.1875rem 0.1875rem 0 rgba(0, 0, 0, 0.05);
          box-shadow: 0 1.125rem 1.125rem 0 rgba(0, 0, 0, 0.05), 0 0.1875rem 0.1875rem 0 rgba(0, 0, 0, 0.05);
  min-width: 8.75rem;
}
.select2-search--dropdown.select2-search--hide {
  display: none;
}
.select2-results {
  display: block;
}
.select2-results__option {
  color: #8f8f8f;
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1.87;
  letter-spacing: 0.0125rem;
  padding: 0 0 0 1.6875rem;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
}
.select2-results__option[aria-selected] {
  cursor: pointer;
}
.select2-results__option[aria-selected=true] {
  background: none;
  position: relative;
}
.select2-results__option[aria-selected=true]::before {
  content: "";
  position: absolute;
  border-left: 0.125rem solid #8f8f8f;
  border-bottom: 0.125rem solid #8f8f8f;
  width: 0.625rem;
  height: 0.375rem;
  top: 0.5625rem;
  left: 0.1875rem;
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg);
}
.select2-results__option--highlighted[aria-selected] {
  background: none;
  color: #8f8f8f;
}
.select2-results__option--highlighted[aria-selected]:hover {
  background: none;
  color: #666666;
}
.select2-results__option--highlighted[aria-selected]:hover::before {
  border-color: #666666;
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/display-address/display-address.scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.display-address--summary {
  font-size: 0.875rem;
  line-height: 1.25rem;
}
@media only screen and (min-width: 768px) {
  .display-address--summary {
    font-size: 0.9375rem;
    line-height: 1.375rem;
  }
}
.display-address__name {
  font-weight: 500;
  color: #666666;
}
.display-address__bottom {
  margin-top: 0.5rem;
  margin-bottom: 0.5rem;
}
.display-address__bottom--summary {
  margin: 0.875rem 0 0;
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/footer-text/footer-text.scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.footer-text__title h1, .footer-text__title h2, .footer-text__title h3, .footer-text__title h4, .footer-text__title h5 {
  font-size: 1.5rem;
  line-height: 1.875rem;
}
.footer-text__title {
  color: #666666;
}
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/icon-tooltip/icon-tooltip.scss ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.icon-tooltip {
  display: inline-block;
  position: relative;
}
.icon-tooltip__tooltip {
  background: rgba(102, 102, 102, 0.8);
  color: #fff;
  text-transform: uppercase;
  font: 500 0.625rem "FrutigerNextPro";
  white-space: nowrap;
  padding: 0.4375rem 0.875rem;
  border-radius: 2px;
  position: absolute;
  left: 50%;
  bottom: calc(100% + 0.625rem);
  -webkit-transform-origin: bottom center;
          transform-origin: bottom center;
  -webkit-transform: translateX(-50%) scale(0);
          transform: translateX(-50%) scale(0);
  -webkit-transition: -webkit-transform 250ms ease-in-out;
  transition: -webkit-transform 250ms ease-in-out;
  transition: transform 250ms ease-in-out;
  transition: transform 250ms ease-in-out, -webkit-transform 250ms ease-in-out;
}
.icon-tooltip__tooltip::before {
  content: "";
  border-top: solid 0.1875rem rgba(102, 102, 102, 0.8);
  border-left: solid 0.1875rem rgba(255, 255, 255, 0);
  border-right: solid 0.1875rem rgba(255, 255, 255, 0);
  position: absolute;
  top: 100%;
  left: calc(50% - 0.1875rem);
}
.icon-tooltip:hover .icon-tooltip__tooltip {
  -webkit-transform: translateX(-50%) scale(1);
          transform: translateX(-50%) scale(1);
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/input-text-copy/input-text-copy.scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.input-text-copy {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background-color: #fff;
  border: 1px solid #B3B3B3;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  height: 100%;
  margin-top: 0;
  padding: 0.3125rem 5rem 0.3125rem 1.25rem;
  position: relative;
}
.input-text-copy__text {
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
}
.input-text-copy .copy-to-clipboard button {
  bottom: 0;
  position: absolute;
  right: 0;
  top: 0;
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/logo/logo.scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.logo--checkout {
  padding-right: 0;
  margin-top: 0.9375rem;
  margin-bottom: 0.9375rem;
}
@media only screen and (min-width: 1024px) {
  .logo--checkout {
    margin-top: -0.625rem;
    margin-bottom: -0.625rem;
  }
}
.logo__image {
  display: grid;
}
.logo__image img {
  max-height: 54px;
}
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/modal-window/modal-window.scss ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.modal-window {
  z-index: 2000;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  position: fixed;
  opacity: 0;
  visibility: hidden;
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
  -webkit-transition: visibility 0s linear 0.25s, opacity 0.25s 0s, -webkit-transform 0.25s;
  transition: visibility 0s linear 0.25s, opacity 0.25s 0s, -webkit-transform 0.25s;
  transition: visibility 0s linear 0.25s, opacity 0.25s 0s, transform 0.25s;
  transition: visibility 0s linear 0.25s, opacity 0.25s 0s, transform 0.25s, -webkit-transform 0.25s;
  pointer-events: none;
}
.modal-window__overlay {
  z-index: 500;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  position: fixed;
  opacity: 0;
  background-color: rgba(0, 0, 0, 0.5);
  visibility: hidden;
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
  -webkit-transition: visibility 0s linear 0.25s, opacity 0.25s 0s, -webkit-transform 0.25s;
  transition: visibility 0s linear 0.25s, opacity 0.25s 0s, -webkit-transform 0.25s;
  transition: visibility 0s linear 0.25s, opacity 0.25s 0s, transform 0.25s;
  transition: visibility 0s linear 0.25s, opacity 0.25s 0s, transform 0.25s, -webkit-transform 0.25s;
}
.modal-window__overlay_blur {
  -webkit-backdrop-filter: blur(5px);
          backdrop-filter: blur(5px);
}
.modal-window__container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  pointer-events: all;
  background-color: #fff;
  position: absolute;
  top: 50%;
  left: 50%;
  height: 100%;
  width: 100%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
}
@media only screen and (min-width: 768px) {
  .modal-window__container {
    height: auto;
    width: 80%;
    max-height: 80%;
  }
}
@media only screen and (min-width: 1920px) {
  .modal-window__container {
    height: auto;
    width: 60%;
    max-height: 80%;
  }
}
.modal-window__header {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 1rem;
  position: relative;
  background-color: #E7E7E7;
}
.modal-window__header .headline {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  word-break: break-all;
  width: 100%;
  margin-bottom: 0;
}
@media only screen and (min-width: 768px) {
  .modal-window__header .headline {
    width: 100%;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: start;
    font-size: 1.5rem;
    line-height: 1.5;
  }
}
.modal-window__close-button-container {
  position: absolute;
  right: 0;
  top: 0;
}
.modal-window__close-button-container .close-button {
  padding: 0;
  border: none;
  background: none;
  cursor: pointer;
  outline: none;
}
.modal-window__content {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  height: 100%;
  overflow: auto;
  padding: 0;
}
.modal-window__content::after {
  background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0)), color-stop(90%, rgb(255, 255, 255)));
  background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0), rgb(255, 255, 255) 90%);
}
.modal-window__active {
  opacity: 1;
  visibility: visible;
  -webkit-transform: scale(1);
          transform: scale(1);
  -webkit-transition: visibility 0s linear 0s, opacity 0.25s 0s, -webkit-transform 0.25s;
  transition: visibility 0s linear 0s, opacity 0.25s 0s, -webkit-transform 0.25s;
  transition: visibility 0s linear 0s, opacity 0.25s 0s, transform 0.25s;
  transition: visibility 0s linear 0s, opacity 0.25s 0s, transform 0.25s, -webkit-transform 0.25s;
}
.modal-window--medium .modal-window__container {
  max-width: 61.25rem;
}
.modal-window--small .modal-window__container {
  max-width: 43.75rem;
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/navigation-footer-item/navigation-footer-item.scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.navigation-footer-item {
  margin-bottom: 1.5rem;
}
@media only screen and (min-width: 770px) {
  .navigation-footer-item {
    margin-bottom: 0;
  }
}
@media only screen and (max-width: 549px) {
  .navigation-footer-item {
    margin-bottom: 0;
    width: 100%;
  }
  .navigation-footer-item .list--footer {
    margin-left: 1.625rem;
    margin-top: 0rem;
    margin-bottom: 1rem;
  }
  .navigation-footer-item .link--footer {
    font-size: 1rem;
  }
}
.navigation-footer-item--2col .list--footer {
  -webkit-column-count: 3;
     -moz-column-count: 3;
          column-count: 3;
}
.navigation-footer-item--2col .list__item {
  padding-right: 0.9375rem;
}
.navigation-footer-item--2col .list__item:nth-child(3n) {
  padding-right: 0;
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/navigation-list/navigation-list.scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.navigation-list {
  z-index: 400;
}
@media only screen and (max-width: 549px) {
  .navigation-list--footer {
    max-height: 0;
    overflow: hidden;
    -webkit-transition: max-height 0.2s ease-out;
    transition: max-height 0.2s ease-out;
  }
}
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/navigation-sidebar/navigation-sidebar.scss ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.navigation-sidebar {
  border: 0.0625rem solid #dce0e5;
}
@media only screen and (min-width: 550px) {
  .navigation-sidebar {
    margin-right: 2rem;
  }
}
.navigation-sidebar--account {
  border: 0;
  padding: 0;
  margin: 0;
}
.navigation-sidebar__list {
  list-style: none;
  padding: 1rem 0 1rem 0.5rem;
  border-radius: 0.125rem;
}
.navigation-sidebar__list--account {
  padding: 0;
  border-radius: 0;
}
@media print {
  .navigation-sidebar {
    display: none;
  }
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/navigation-sidebar-item/navigation-sidebar-item.scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.navigation-sidebar-item--active {
  background-color: #f0f0f0;
}
.navigation-sidebar-item--active .navigation-sidebar-item__icon {
  color: #E30613;
}
.navigation-sidebar-item--active .navigation-sidebar-item__label {
  color: #666666;
}
.navigation-sidebar-item__link {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 0.625rem 0.8125rem;
  line-height: 1.3em;
  font-size: 1.0625rem;
  font-weight: 500;
  color: #666666;
}
.navigation-sidebar-item__link--account {
  margin: 0 -1.25rem;
  padding: 0 0 0 1.1875rem;
  color: #666666;
}
.navigation-sidebar-item__icon-wrapper {
  padding: 0 0.9375rem 0 0;
  min-width: 3.125rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.navigation-sidebar-item__icon-wrapper--account {
  min-width: 2.8125rem;
  color: #666666;
}
.navigation-sidebar-item__label {
  text-transform: capitalize;
}
.navigation-sidebar-item__label--account {
  padding: 0.9375rem 0.8125rem 0.9375rem 0.625rem;
  border-bottom: 0.0625rem solid #dce0e5;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/noscript-warning/noscript-warning.scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.noscript-warning {
  margin: 0;
  padding: 0;
}
.noscript-warning__message {
  font-size: 17px;
  font-family: "FrutigerNextPro";
  padding: 1.25rem 1rem;
  color: #fff;
  background-color: #0064b4;
  text-align: center;
  width: 100%;
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/page-info/page-info.scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.page-info {
  background-color: #F8F8F8;
  padding: 2.5rem 0 0.625rem;
}
.page-info--checkout {
  padding: 0.9375rem 0;
  background-color: #fff;
  -webkit-box-shadow: 0 0.625rem 1.125rem 0 rgba(0, 0, 0, 0.05), 0 0.1875rem 0.1875rem 0 rgba(0, 0, 0, 0.05);
          box-shadow: 0 0.625rem 1.125rem 0 rgba(0, 0, 0, 0.05), 0 0.1875rem 0.1875rem 0 rgba(0, 0, 0, 0.05);
}
@media only screen and (min-width: 769px -1) {
  .page-info--checkout {
    background-color: #F8F8F8;
    padding: 0.875rem 0 0.75rem;
  }
}
.page-info__title {
  padding-top: 0.25rem;
  font: 500 1.375rem/1.625rem "FrutigerNextPro";
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}
@media only screen and (min-width: 769px -1) {
  .page-info__title {
    display: block;
    padding-top: 0;
    font-size: 1.75rem;
    line-height: 2.25rem;
  }
}
@media print {
  .page-info {
    display: none;
  }
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/panel-info-item/panel-info-item.scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.panel-info-item {
  display: none;
}

@media only screen and (min-width: 1024px) {
  .panel-info-item {
    display: block;
    font-size: 0.9375rem;
    line-height: 1.125rem;
    text-transform: capitalize;
    margin-right: 0.9375rem;
    color: #666666;
  }
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/price-mode/price-mode.scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.price-mode {
  color: #666666;
  letter-spacing: 0.0125rem;
}
.price-mode--small {
  font-size: 0.75rem;
  letter-spacing: 0.00625rem;
}
.price-mode--secondary {
  color: #666666;
}
.price-mode--mobile-small {
  font-size: 0.875rem;
}
@media only screen and (min-width: 768px) {
  .price-mode--mobile-small {
    font-size: 1rem;
  }
}
.price-mode__icon {
  margin-right: 0.5rem;
}
.price-mode__icon--small {
  margin-right: 0.25rem;
}
.price-mode__icon--mobile-small {
  margin-right: 0.25rem;
}
@media only screen and (min-width: 768px) {
  .price-mode__icon--mobile-small {
    margin-right: 0.5rem;
  }
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/price-total-calculator/price-total-calculator.scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.price-total-calculator {
  line-height: 1.25;
}
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/price-with-realtime-price/price-with-realtime-price.scss ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.price-with-realtime-price {
  display: block;
}
.price-with-realtime-price__amount {
  font-size: 1.125rem;
}
.price-with-realtime-price__amount--original {
  font-size: 0.875rem;
  display: block;
  color: #8f8f8f;
  text-decoration: line-through;
}
.price-with-realtime-price__tag {
  margin-right: 0.25rem;
  color: #E30613;
}
.price-with-realtime-price--cart {
  margin: 0 0 15px;
}
.price-with-realtime-price--summary {
  margin: 0;
}
.price-with-realtime-price__amount {
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.2;
  color: #666666;
}
@media only screen and (min-width: 768px) {
  .price-with-realtime-price__amount {
    font-size: 1.125rem;
  }
}
.price-with-realtime-price__amount--cart {
  font-size: 1.125rem;
  font-weight: 500;
  line-height: normal;
  color: #666666;
}
.price-with-realtime-price__amount--lower {
  color: #6CA52F;
}
.price-with-realtime-price__amount--higher {
  color: #E30613;
}
.price-with-realtime-price__amount--original {
  font-size: 0.9375rem;
  display: inline-block;
  color: #666666;
  font-weight: 400;
}
@media only screen and (min-width: 768px) {
  .price-with-realtime-price__amount--original {
    font-size: 1.125rem;
  }
}
@media only screen and (min-width: 550px) {
  .price-with-realtime-price__amount--original.price-with-realtime-price__amount--catalog-list {
    margin-left: 0.25rem;
  }
}
.price-with-realtime-price__mode {
  display: inline;
  color: #666666;
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 0.75rem;
  margin-left: 0;
}
@media only screen and (min-width: 768px) {
  .price-with-realtime-price__mode {
    margin-left: 0.3125rem;
    font-size: 0.75rem;
  }
}
.price-with-realtime-price__mode--cart {
  display: block;
  margin-left: 0;
}
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/privacy-navigation/privacy-navigation.scss ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.privacy-navigation {
  text-align: left;
  padding-top: 0.625rem;
  padding-left: 15px;
  padding-right: 15px;
  -webkit-box-ordinal-group: 3;
      -ms-flex-order: 2;
          order: 2;
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
@media only screen and (min-width: 768px) {
  .privacy-navigation {
    display: block;
    width: 25%;
    position: absolute;
    right: 0;
    padding-top: 0;
  }
}
.privacy-navigation__item {
  padding: 0 0.5rem;
}
@media only screen and (min-width: 768px) {
  .privacy-navigation__item {
    padding: 0;
  }
}
.privacy-navigation__item:not(:first-child) {
  padding-top: 5px;
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/product-card-extended/product-card-extended.scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
/* stylelint-disable */
.product-card .add-to-card-wrapper {
  display: inline-block;
}
.product-card__container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}
.product-card__price {
  font-size: 0.9375rem;
  min-height: 1.5625rem;
  padding-top: 0.375rem;
  padding-bottom: 0.375rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.product-card__price .price {
  display: inline-block;
}
.product-card__price--cms, .product-card__price--slider {
  width: auto;
}
.product-card__overlay {
  font-size: 0.9375rem;
  line-height: 1.5625rem;
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  max-height: 3.125rem;
  min-height: 3.125rem;
}
.product-card__seperator {
  border-color: #E7E7E7;
}
.product-card__availability-date-box {
  font-size: 0.875rem;
  min-height: 1.5rem;
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/product-card-item/product-card-item.scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.product-card-item {
  border: 0.125rem solid #f0f0f0;
  border-radius: 2px;
  padding: 0.75rem;
  margin-bottom: 0.625rem;
  position: relative;
  width: 100%;
}
@media only screen and (min-width: 550px) {
  .product-card-item {
    padding-right: 1.375rem;
  }
}
@media only screen and (min-width: 768px) {
  .product-card-item {
    padding: 0;
    margin-bottom: 1.25rem;
  }
}
.product-card-item__col--image {
  border-radius: 2px 0 0 2px;
  padding-top: 0;
  padding-bottom: 0;
  width: 4.875rem;
  min-width: 4.875rem;
}
@media only screen and (min-width: 550px) {
  .product-card-item__col--image {
    width: 22%;
    min-width: 22%;
  }
}
.product-card-item__col--total {
  padding-top: 0;
  padding-bottom: 0;
  width: 100%;
  min-width: 100%;
}
@media only screen and (min-width: 768px) {
  .product-card-item__col--total {
    width: 40%;
    min-width: 40%;
    text-align: right;
  }
}
@media only screen and (min-width: 768px) {
  .product-card-item .product-card-item__col--total {
    padding-left: 0;
    padding-right: calc(30px + 15px);
  }
}
.product-card-item__col--content {
  width: 100%;
  min-width: 100%;
}
@media only screen and (min-width: 768px) {
  .product-card-item__col--content {
    width: 60%;
    min-width: 60%;
  }
}
.product-card-item__col--description {
  padding-top: 0.5rem;
  padding-bottom: 0.75rem;
  width: calc(100% - 4.875rem);
  min-width: calc(100% - 4.875rem);
}
@media only screen and (min-width: 550px) {
  .product-card-item__col--description {
    width: 78%;
    min-width: 78%;
  }
}
@media only screen and (min-width: 768px) {
  .product-card-item__col--description {
    padding-top: 2.25rem;
    padding-bottom: 1.75rem;
  }
}
.product-card-item__col--shopping-list:not(.product-card-item__col--image) {
  padding-bottom: 1.25rem;
  padding-top: 0;
}
@media only screen and (min-width: 768px) {
  .product-card-item__col--shopping-list:not(.product-card-item__col--image) {
    padding-bottom: 1.75rem;
    padding-top: 1.75rem;
  }
}
.product-card-item__col--shopping-list:not(.product-card-item__col--image):last-child {
  padding-bottom: 0;
}
@media only screen and (min-width: 768px) {
  .product-card-item__col--shopping-list:not(.product-card-item__col--image):last-child {
    padding-bottom: 1.25rem;
  }
}
.product-card-item__col--hidden:not(.product-card-item__col--content) {
  opacity: 0.5;
}
.product-card-item__additional-title {
  padding-top: 1rem;
  font-size: 0.875rem;
  font-weight: 500;
  line-height: normal;
}
@media only screen and (min-width: 768px) {
  .product-card-item__additional-title {
    padding-top: 1.75rem;
  }
}
.product-card-item__inner--full-height {
  height: 100%;
}
.product-card-item__inner--total {
  -webkit-box-orient: vertical;
  -webkit-box-direction: reverse;
      -ms-flex-direction: column-reverse;
          flex-direction: column-reverse;
}
@media only screen and (min-width: 768px) {
  .product-card-item__inner--total {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: flex-end;
  }
}
.product-card-item__inner--actions {
  padding-bottom: 0.375rem;
}
@media only screen and (min-width: 768px) {
  .product-card-item__inner--actions {
    padding-bottom: 0;
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: flex-end;
  }
}
.product-card-item__title {
  font-size: 0.875rem;
  font-weight: 500;
  line-height: normal;
  color: #666666;
  margin-bottom: 0;
}
@media only screen and (min-width: 768px) {
  .product-card-item__title {
    font-size: 1.25rem;
  }
}
.product-card-item__title--shopping-list-alternative {
  font-size: 0.75rem;
}
@media only screen and (min-width: 768px) {
  .product-card-item__title--shopping-list-alternative {
    font-size: 1rem;
  }
}
.product-card-item__title--hidden {
  opacity: 0.5;
}
.product-card-item__color {
  display: inline-block;
  width: 0.875rem;
  height: 0.875rem;
  border-radius: 50%;
  margin-left: 0.25rem;
  text-indent: -624.9375rem;
  vertical-align: middle;
}
.product-card-item__color-preview {
  display: inline-block;
  position: relative;
  font-size: 0.8125rem;
  font-weight: 500;
  color: #666666;
  padding-right: 1.3125rem;
  line-height: 1.3125rem;
}
@media only screen and (min-width: 768px) {
  .product-card-item__color-preview {
    font-size: 0.875rem;
  }
}
.product-card-item__color-preview-decoration {
  position: absolute;
  right: 0;
  top: 0.1875rem;
  width: 0.9375rem;
  height: 0.9375rem;
  border-radius: 50%;
  border: 0.0625rem solid #dce0e5;
}
.product-card-item__available {
  display: inline-block;
  color: #E30613;
  font-weight: 500;
  line-height: normal;
  margin-bottom: 0.5rem;
}
.product-card-item__checkbox {
  height: 100%;
}
.product-card-item__checkbox-col {
  background-color: rgba(0, 0, 0, 0.05);
  padding-left: 0.75rem;
}
.product-card-item__checkbox-col--shopping-list {
  position: absolute;
  right: 0;
  top: 0;
  background: rgba(255, 255, 255, 0);
}
@media only screen and (min-width: 768px) {
  .product-card-item__checkbox-col--shopping-list {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    position: static;
    background-color: rgba(0, 0, 0, 0.05);
    padding-bottom: 1.25rem;
  }
}
.product-card-item__quantity-holder {
  padding-bottom: 1rem;
}
@media only screen and (min-width: 768px) {
  .product-card-item__quantity-holder {
    padding-bottom: 0;
  }
}
.product-card-item__quantity {
  font-size: 0.8125rem;
  color: #666666;
}
@media only screen and (min-width: 768px) {
  .product-card-item__quantity {
    font-size: 0.875rem;
  }
}
.product-card-item__quantity-title {
  color: #666666;
  font-weight: 500;
}
.product-card-item__delete-cart {
  position: absolute;
  bottom: 3rem;
  right: 2rem;
}
@media only screen and (min-width: 768px) {
  .product-card-item__delete-cart {
    padding-top: 2rem;
    position: static;
  }
}
.product-card-item__remove-button {
  margin-top: -3rem;
}
@media only screen and (min-width: 768px) {
  .product-card-item__remove-button {
    margin: 0;
  }
}
.product-card-item__remove-button-text {
  display: none;
}
@media only screen and (min-width: 768px) {
  .product-card-item__remove-button-text {
    display: inline-block;
  }
}
.product-card-item__dropdown {
  position: absolute;
  left: -0.125rem;
  width: calc(100% + 0.25rem);
  top: calc(100% + 0.9375rem);
}
@media only screen and (min-width: 768px) {
  .product-card-item__dropdown {
    position: static;
    width: 100%;
    left: auto;
    top: auto;
  }
}
.product-card-item__dropdown .select2-selection__rendered,
.product-card-item__dropdown .custom-select__select {
  background-color: #fff;
}
@media only screen and (min-width: 768px) {
  .product-card-item__dropdown .select2-selection__rendered,
  .product-card-item__dropdown .custom-select__select {
    background-color: #f0f0f0;
  }
}
.product-card-item--shopping-list-available {
  padding-bottom: 4.6875rem;
}
@media only screen and (min-width: 768px) {
  .product-card-item--shopping-list-available {
    padding-bottom: 0;
  }
}
.product-card-item--checkout {
  margin-bottom: 0.9375rem;
}
@media only screen and (min-width: 768px) {
  .product-card-item--checkout .product-card-item__col--image {
    width: 17%;
    min-width: 17%;
  }
}
@media only screen and (min-width: 768px) {
  .product-card-item--checkout .product-card-item__col--total {
    width: 20%;
    min-width: 20%;
  }
}
@media only screen and (min-width: 768px) {
  .product-card-item .product-card-item--checkout .product-card-item__col--total {
    padding-left: 0;
    padding-right: 30px;
  }
}
@media only screen and (min-width: 768px) {
  .product-card-item--checkout .product-card-item__col--content {
    width: 80%;
    min-width: 80%;
  }
}
.product-card-item--checkout .product-card-item__col--description {
  padding-top: 0;
  padding-bottom: 0;
}
@media only screen and (min-width: 768px) {
  .product-card-item--checkout .product-card-item__col--description {
    width: 83%;
    min-width: 83%;
    padding-top: 1.25rem;
    padding-bottom: 0.9375rem;
    margin-left: -0.625rem;
  }
}
.product-card-item--checkout-address {
  margin-bottom: 6.25rem;
}
@media only screen and (min-width: 768px) {
  .product-card-item--checkout-address {
    margin-bottom: 1.25rem;
  }
}
@media only screen and (min-width: 768px) {
  .product-card-item--checkout-address .product-card-item__col--total {
    width: 60%;
    min-width: 60%;
    text-align: left;
  }
}
.product-card-item--checkout-address .product-card-item__col--total .product-card-item__inner {
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  height: auto;
}
@media only screen and (min-width: 768px) {
  .product-card-item--checkout-address .product-card-item__col--content {
    width: 40%;
    min-width: 40%;
  }
}
.product-card-item--order-detail .product-card-item__col--image {
  margin-left: 2.1875rem;
  padding-right: 0.3125rem;
}
@media only screen and (min-width: 550px) {
  .product-card-item--order-detail .product-card-item__col--image {
    margin-left: 0;
    padding-right: 15px;
  }
}
@media only screen and (min-width: 768px) {
  .product-card-item--order-detail .product-card-item__col--total {
    width: 30%;
    min-width: 30%;
  }
}
@media only screen and (min-width: 768px) {
  .product-card-item .product-card-item--order-detail .product-card-item__col--total {
    padding-left: 0;
    padding-right: 30px;
  }
}
@media only screen and (min-width: 768px) {
  .product-card-item--order-detail .product-card-item__col--content {
    width: 70%;
    min-width: 70%;
  }
}
.product-card-item--order-detail .product-card-item__col--description {
  width: calc(100% - 4.875rem - 2.1875rem);
  min-width: calc(100% - 4.875rem - 2.1875rem);
  padding-top: 0;
  padding-bottom: 0;
}
@media only screen and (min-width: 550px) {
  .product-card-item--order-detail .product-card-item__col--description {
    width: 78%;
    min-width: 78%;
  }
}
@media only screen and (min-width: 768px) {
  .product-card-item--order-detail .product-card-item__col--description {
    padding-top: 1.25rem;
    padding-bottom: 0.9375rem;
    margin-left: -0.625rem;
  }
}
.product-card-item--fixed-input {
  max-width: 8.625rem;
  margin-bottom: 1.875rem;
  text-align: right;
}
.product-card-item--shopping-list-alternative {
  margin-bottom: 0.625rem;
}
.product-card-item--shopping-list-alternative .product-card-item__col {
  width: 69%;
  min-width: 69%;
}
@media only screen and (min-width: 768px) {
  .product-card-item--shopping-list-alternative .product-card-item__col {
    width: 78%;
    min-width: 78%;
  }
}
.product-card-item--shopping-list-alternative .product-card-item__col--image {
  width: 31%;
  min-width: 31%;
}
@media only screen and (min-width: 768px) {
  .product-card-item--shopping-list-alternative .product-card-item__col--image {
    width: 22%;
    min-width: 22%;
  }
}
.product-card-item--shopping-list-alternative .product-card-item__col--content {
  width: 100%;
  min-width: 100%;
}
@media only screen and (min-width: 768px) {
  .product-card-item--shopping-list-alternative .product-card-item__col--content {
    width: 58%;
    min-width: 58%;
  }
}
.product-card-item--shopping-list-alternative .product-card-item__col--total {
  width: 100%;
  min-width: 100%;
}
@media only screen and (min-width: 768px) {
  .product-card-item--shopping-list-alternative .product-card-item__col--total {
    width: 42%;
    min-width: 42%;
  }
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/product-item-attributes/product-item-attributes.scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.product-item-attributes__color {
  display: inline-block;
  width: 0.875rem;
  height: 0.875rem;
  border-radius: 50%;
  margin-left: 0.25rem;
  text-indent: -9999px;
  vertical-align: middle;
}
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/product-item-image/product-item-image.scss ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.product-item-image {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  position: relative;
  padding: 0.25rem;
}
@media only screen and (min-width: 768px) {
  .product-item-image {
    height: 100%;
    padding: 2.25rem 0.25rem 1.75rem;
  }
}
.product-item-image::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(0, 0, 0, 0.05);
  border-radius: 2px 0 0 2px;
  z-index: 1;
}
.product-item-image__item {
  width: 100%;
  overflow: hidden;
}
.product-item-image__no-image {
  color: #666666;
  font-size: 2.5rem;
  margin: 0 auto;
}
@media only screen and (min-width: 768px) {
  .product-item-image--summary {
    padding-top: 1.75rem;
    padding-bottom: 1.25rem;
  }
}
.product-item-image--shopping-list {
  padding: 0;
}
@media only screen and (min-width: 768px) {
  .product-item-image--shopping-list {
    padding-top: 1.75rem;
    padding-bottom: 1.25rem;
  }
}
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/product-item-options/product-item-options.scss ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.product-item-options {
  margin-top: 1rem;
}
.product-item-options--summary {
  margin-top: 0.25rem;
}
@media only screen and (min-width: 768px) {
  .product-item-options--summary {
    margin-top: 1rem;
  }
}
.product-item-options__item {
  font-size: 0.8125rem;
  color: #8f8f8f;
  display: block;
}
@media only screen and (min-width: 768px) {
  .product-item-options__item {
    font-size: 0.875rem;
  }
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/product-item-variant-selector/product-item-variant-selector.scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.product-item-variant-selector__label {
  font-size: 0.8125rem;
  font-weight: 500;
  line-height: normal;
  color: #666666;
  margin-right: 0.375rem;
}
@media only screen and (min-width: 768px) {
  .product-item-variant-selector__label {
    margin-right: 1.5rem;
    font-size: 0.875rem;
  }
}
@media only screen and (min-width: 550px) {
  .product-item-variant-selector__select {
    -webkit-box-flex: 0;
        -ms-flex-positive: 0;
            flex-grow: 0;
  }
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/product-list-item-attributes/product-list-item-attributes.scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.product-list-item-attributes {
  margin-top: 1.25rem;
  font-size: 15px;
  line-height: 20px;
}
@media only screen and (max-width: 769px) {
  .product-list-item-attributes {
    display: none;
  }
}
.product-list-item-attributes td {
  color: #666666;
}
.product-list-item-attributes td:first-child {
  padding-right: 0.9375rem;
  vertical-align: top;
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/project-order-configuration/project-order-configuration.scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.project-order-configuration {
  width: 100%;
}
.project-order-configuration__list {
  list-style: disc;
  padding-left: 1rem;
}
.project-order-configuration-toggle__item .toggler-accordion__item {
  padding-left: 0;
}
.project-order-configuration-toggle__title {
  display: inline-block;
  color: #E30613;
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/project-request-label/project-request-label.scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.project-request-label--inline {
  display: inline-block;
}
.project-request-label__container {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 0.3125rem;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
}
.project-request-label__label {
  margin-top: 0.1875rem;
}
.project-request-label__label--title {
  color: #6CA52F;
  font-weight: 500;
}
.project-request-label__icon i {
  vertical-align: middle;
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/quantity-counter/quantity-counter.scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.quantity-counter {
  padding: 0.5rem 0.625rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background: #f0f0f0;
}
.quantity-counter__input {
  margin: 0;
  padding: 0;
  font-size: 1rem;
  line-height: normal;
  width: 2.875rem;
  text-align: center;
  border: none;
  background: none;
}
.quantity-counter__input[type=number]::-webkit-inner-spin-button, .quantity-counter__input[type=number]::-webkit-outer-spin-button {
  -webkit-appearance: none;
}
.quantity-counter__input[type=number] {
  -moz-appearance: textfield;
}
.quantity-counter__button {
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 2px;
  background-color: #fff;
  -webkit-box-shadow: 0 0.625rem 0.625rem 0 rgba(0, 0, 0, 0.1), 0 0.1875rem 0.1875rem 0 rgba(0, 0, 0, 0.1);
          box-shadow: 0 0.625rem 0.625rem 0 rgba(0, 0, 0, 0.1), 0 0.1875rem 0.1875rem 0 rgba(0, 0, 0, 0.1);
  line-height: 0;
  font-size: 0;
  cursor: pointer;
  position: relative;
  -webkit-transition: background 250ms ease-in-out;
  transition: background 250ms ease-in-out;
}
.quantity-counter__button--decrement::before, .quantity-counter__button--increment::before, .quantity-counter__button--increment::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  width: 0.5625rem;
  height: 0.125rem;
  background: #8f8f8f;
  -webkit-transition: background 250ms ease-in-out;
  transition: background 250ms ease-in-out;
}
.quantity-counter__button--increment::after {
  width: 0.125rem;
  height: 0.5625rem;
}
.quantity-counter__button:hover {
  background: #E30613;
}
.quantity-counter__button:hover::before, .quantity-counter__button:hover::after {
  background: #fff;
}
.quantity-counter__button--disabled {
  background: #fff;
  cursor: not-allowed;
  -webkit-box-shadow: 0 0.1875rem 0.1875rem 0 rgba(0, 0, 0, 0.1);
          box-shadow: 0 0.1875rem 0.1875rem 0 rgba(0, 0, 0, 0.1);
}
.quantity-counter__button--disabled::before, .quantity-counter__button--disabled::after {
  background: #e7eaee;
}
.quantity-counter__button--disabled:hover, .quantity-counter__button--disabled:focus {
  background: #fff;
}
.quantity-counter__button--disabled:hover::before, .quantity-counter__button--disabled:hover::after, .quantity-counter__button--disabled:focus::before, .quantity-counter__button--disabled:focus::after {
  background: #e7eaee;
}
.quantity-counter--right-space {
  margin-right: 0.625rem;
}
@media only screen and (min-width: 768px) {
  .quantity-counter--cart {
    padding-top: 0.625rem;
    padding-bottom: 0.75rem;
  }
}
.quantity-counter--shopping-list {
  padding-top: 0.625rem;
  padding-bottom: 0.75rem;
  margin-bottom: 1.25rem;
}
/*!*****************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/nouislider/dist/nouislider.min.css ***!
  \*****************************************************************************************************************************************************************************************************/
.noUi-target,.noUi-target *{-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-ms-touch-action:none;touch-action:none;-ms-user-select:none;-moz-user-select:none;user-select:none;-webkit-box-sizing:border-box;box-sizing:border-box}.noUi-target{position:relative}.noUi-base,.noUi-connects{width:100%;height:100%;position:relative;z-index:1}.noUi-connects{overflow:hidden;z-index:0}.noUi-connect,.noUi-origin{will-change:transform;position:absolute;z-index:1;top:0;right:0;height:100%;width:100%;-ms-transform-origin:0 0;-webkit-transform-origin:0 0;-webkit-transform-style:preserve-3d;transform-origin:0 0;-webkit-transform-style:flat;transform-style:flat}.noUi-txt-dir-rtl.noUi-horizontal .noUi-origin{left:0;right:auto}.noUi-vertical .noUi-origin{top:-100%;width:0}.noUi-horizontal .noUi-origin{height:0}.noUi-handle{-webkit-backface-visibility:hidden;backface-visibility:hidden;position:absolute}.noUi-touch-area{height:100%;width:100%}.noUi-state-tap .noUi-connect,.noUi-state-tap .noUi-origin{-webkit-transition:transform .3s;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s, -webkit-transform .3s}.noUi-state-drag *{cursor:inherit!important}.noUi-horizontal{height:18px}.noUi-horizontal .noUi-handle{width:34px;height:28px;right:-17px;top:-6px}.noUi-vertical{width:18px}.noUi-vertical .noUi-handle{width:28px;height:34px;right:-6px;bottom:-17px}.noUi-txt-dir-rtl.noUi-horizontal .noUi-handle{left:-17px;right:auto}.noUi-target{background:#FAFAFA;border-radius:4px;border:1px solid #D3D3D3;-webkit-box-shadow:inset 0 1px 1px #F0F0F0,0 3px 6px -5px #BBB;box-shadow:inset 0 1px 1px #F0F0F0,0 3px 6px -5px #BBB}.noUi-connects{border-radius:3px}.noUi-connect{background:#3FB8AF}.noUi-draggable{cursor:ew-resize}.noUi-vertical .noUi-draggable{cursor:ns-resize}.noUi-handle{border:1px solid #D9D9D9;border-radius:3px;background:#FFF;cursor:default;-webkit-box-shadow:inset 0 0 1px #FFF,inset 0 1px 7px #EBEBEB,0 3px 6px -3px #BBB;box-shadow:inset 0 0 1px #FFF,inset 0 1px 7px #EBEBEB,0 3px 6px -3px #BBB}.noUi-active{-webkit-box-shadow:inset 0 0 1px #FFF,inset 0 1px 7px #DDD,0 3px 6px -3px #BBB;box-shadow:inset 0 0 1px #FFF,inset 0 1px 7px #DDD,0 3px 6px -3px #BBB}.noUi-handle:after,.noUi-handle:before{content:"";display:block;position:absolute;height:14px;width:1px;background:#E8E7E6;left:14px;top:6px}.noUi-handle:after{left:17px}.noUi-vertical .noUi-handle:after,.noUi-vertical .noUi-handle:before{width:14px;height:1px;left:6px;top:14px}.noUi-vertical .noUi-handle:after{top:17px}[disabled] .noUi-connect{background:#B8B8B8}[disabled] .noUi-handle,[disabled].noUi-handle,[disabled].noUi-target{cursor:not-allowed}.noUi-pips,.noUi-pips *{-webkit-box-sizing:border-box;box-sizing:border-box}.noUi-pips{position:absolute;color:#999}.noUi-value{position:absolute;white-space:nowrap;text-align:center}.noUi-value-sub{color:#ccc;font-size:10px}.noUi-marker{position:absolute;background:#CCC}.noUi-marker-sub{background:#AAA}.noUi-marker-large{background:#AAA}.noUi-pips-horizontal{padding:10px 0;height:80px;top:100%;left:0;width:100%}.noUi-value-horizontal{-webkit-transform:translate(-50%,50%);transform:translate(-50%,50%)}.noUi-rtl .noUi-value-horizontal{-webkit-transform:translate(50%,50%);transform:translate(50%,50%)}.noUi-marker-horizontal.noUi-marker{margin-left:-1px;width:2px;height:5px}.noUi-marker-horizontal.noUi-marker-sub{height:10px}.noUi-marker-horizontal.noUi-marker-large{height:15px}.noUi-pips-vertical{padding:0 10px;height:100%;top:0;left:100%}.noUi-value-vertical{-webkit-transform:translate(0,-50%);transform:translate(0,-50%);padding-left:25px}.noUi-rtl .noUi-value-vertical{-webkit-transform:translate(0,50%);transform:translate(0,50%)}.noUi-marker-vertical.noUi-marker{width:5px;height:2px;margin-top:-1px}.noUi-marker-vertical.noUi-marker-sub{width:10px}.noUi-marker-vertical.noUi-marker-large{width:15px}.noUi-tooltip{display:block;position:absolute;border:1px solid #D9D9D9;border-radius:3px;background:#fff;color:#000;padding:5px;text-align:center;white-space:nowrap}.noUi-horizontal .noUi-tooltip{-webkit-transform:translate(-50%,0);transform:translate(-50%,0);left:50%;bottom:120%}.noUi-vertical .noUi-tooltip{-webkit-transform:translate(0,-50%);transform:translate(0,-50%);top:50%;right:120%}.noUi-horizontal .noUi-origin>.noUi-tooltip{-webkit-transform:translate(50%,0);transform:translate(50%,0);left:auto;bottom:10px}.noUi-vertical .noUi-origin>.noUi-tooltip{-webkit-transform:translate(0,-18px);transform:translate(0,-18px);top:auto;right:28px}
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/range-slider/range-slider.scss ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.range-slider {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: reverse;
      -ms-flex-direction: column-reverse;
          flex-direction: column-reverse;
  border: none;
  background: none;
  height: auto;
  -webkit-box-shadow: none;
          box-shadow: none;
  margin: 0 7px;
}
.range-slider .noUi-base {
  position: relative;
  z-index: 1;
  padding: 6px 0;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  cursor: pointer;
}
.range-slider .noUi-connects {
  background-color: #666666;
  height: 2px;
  margin: 0 calc(-14px / 2);
  width: calc(100% + 14px);
}
.range-slider .noUi-connect {
  background-color: #E30613;
}
.range-slider .noUi-handle {
  -webkit-transition: -webkit-transform 250ms ease-in-out;
  transition: -webkit-transform 250ms ease-in-out;
  transition: transform 250ms ease-in-out;
  transition: transform 250ms ease-in-out, -webkit-transform 250ms ease-in-out;
  width: 14px;
  height: 14px;
  border-radius: 7px;
  -webkit-box-shadow: none;
          box-shadow: none;
  border: none;
  background-color: #E30613;
}
.range-slider .noUi-handle::before, .range-slider .noUi-handle::after {
  display: none;
}
.range-slider .noUi-handle:hover {
  cursor: pointer;
  -webkit-transform: scale(1.3);
          transform: scale(1.3);
}
.range-slider.noUi-horizontal .noUi-handle {
  top: 0;
}
html:not([dir=rtl]) .range-slider.noUi-horizontal .noUi-handle {
  right: 0;
  margin-right: -7px;
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./node_modules/slick-carousel/slick/slick.scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
/* Slider */
.slick-slider {
  position: relative;
  display: block;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -ms-touch-action: pan-y;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent;
}

.slick-list {
  position: relative;
  overflow: hidden;
  display: block;
  margin: 0;
  padding: 0;
}
.slick-list:focus {
  outline: none;
}
.slick-list.dragging {
  cursor: pointer;
  cursor: hand;
}

.slick-slider .slick-track,
.slick-slider .slick-list {
  -webkit-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}

.slick-track {
  position: relative;
  left: 0;
  top: 0;
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.slick-track:before, .slick-track:after {
  content: "";
  display: table;
}
.slick-track:after {
  clear: both;
}
.slick-loading .slick-track {
  visibility: hidden;
}

.slick-slide {
  float: left;
  height: 100%;
  min-height: 1px;
  display: none;
}
[dir=rtl] .slick-slide {
  float: right;
}
.slick-slide img {
  display: block;
}
.slick-slide.slick-loading img {
  display: none;
}
.slick-slide.dragging img {
  pointer-events: none;
}
.slick-initialized .slick-slide {
  display: block;
}
.slick-loading .slick-slide {
  visibility: hidden;
}
.slick-vertical .slick-slide {
  display: block;
  height: auto;
  border: 1px solid transparent;
}

.slick-arrow.slick-hidden {
  display: none;
}
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/slick-carousel/slick-carousel.scss ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.slick-carousel__container {
  max-height: 24.625rem;
  opacity: 0;
  -webkit-transition: opacity 0.5s ease-in-out;
  transition: opacity 0.5s ease-in-out;
}
.slick-carousel__container--is-inited {
  opacity: 1;
  max-height: none;
}
@media print {
  .slick-carousel .slick-slide {
    display: none !important;
  }
  .slick-carousel .slick-slide.slick-active {
    display: block !important;
  }
  .slick-carousel .slick-list {
    height: auto !important;
  }
  .slick-carousel .slick-track {
    width: auto !important;
    height: auto !important;
    -webkit-transform: none !important;
            transform: none !important;
  }
  .slick-carousel .slick-track .slick-slide {
    width: 33% !important;
  }
}
.slick-carousel .slick-track,
.slick-carousel .slick-list {
  -webkit-transition-delay: 250ms;
          transition-delay: 250ms;
}
.slick-carousel--full-width {
  margin-left: -15px;
  margin-right: -15px;
}
.slick-carousel--full-width.slick-carousel--equal-height {
  margin-left: -0.5625rem;
  margin-right: -0.5625rem;
}
@media only screen and (min-width: 768px) {
  .slick-carousel--full-width.slick-carousel--equal-height {
    margin-left: -15px;
    margin-right: -15px;
  }
}
.slick-carousel--equal-height .slick-track {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.slick-carousel--equal-height .slick-slide {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  height: auto;
  margin: 0 0.5625rem;
}
@media only screen and (min-width: 768px) {
  .slick-carousel--equal-height .slick-slide {
    margin: 0 15px;
  }
}
.slick-carousel--equal-height .slick-slide > div {
  max-width: 100%;
  width: 100%;
}
.slick-carousel--equal-height.slick-carousel--cms .slick-slide {
  background-color: #fff;
}
.slick-carousel--stretch .slick-slide {
  margin: 0;
}
.slick-carousel--stretch .slick-list {
  padding: 0 15px;
}
.slick-carousel--product-set {
  margin: 0 -0.625rem;
}
.slick-carousel--product-set .slick-slide {
  margin: 0 0.625rem;
}
@media only screen and (min-width: 768px) {
  .slick-carousel--product-set {
    margin: 0;
  }
  .slick-carousel--product-set .slick-slide {
    margin: 0;
  }
}
.slick-carousel--product-set-widget .slick-slide {
  min-height: 25rem;
  width: 17.5rem;
  margin: 0 0.625rem;
}
@media only screen and (min-width: 768px) {
  .slick-carousel--product-set-widget .slick-slide {
    margin: 0 15px;
  }
}
.slick-carousel--jumbotron {
  display: block;
  min-height: 24.375rem;
}
@media only screen and (min-width: 768px) {
  .slick-carousel--jumbotron {
    min-height: 31.5625rem;
  }
}
.slick-carousel--jumbotron .slick-slide {
  margin: 0 0.0625rem;
}
@media only screen and (min-width: 768px) {
  .slick-carousel--jumbotron .slick-slide {
    margin-left: 0.3125rem;
    margin-right: 0.3125rem;
  }
}
.slick-carousel--jumbotron .slick-dots {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin-top: 1.125rem;
}
@media only screen and (min-width: 768px) {
  .slick-carousel--jumbotron .slick-dots {
    margin-top: 1.5rem;
  }
}
.slick-carousel--jumbotron .slick-dots li {
  display: block;
  position: relative;
  margin: 0 0.375rem;
  width: 0.625rem;
  height: 0.625rem;
  background: rgba(255, 255, 255, 0);
  border-radius: 50%;
  font-size: 0;
}
.slick-carousel--jumbotron .slick-dots li::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  width: 0.3125rem;
  height: 0.3125rem;
  background: #dadada;
  border-radius: 50%;
}
@media only screen and (min-width: 768px) {
  .slick-carousel--jumbotron .slick-dots li {
    margin-top: 0.3rem;
    margin-bottom: 0.3rem;
  }
}
.slick-carousel--jumbotron .slick-dots li:hover {
  cursor: pointer;
}
.slick-carousel--jumbotron .slick-dots li.slick-active::after {
  width: 0.625rem;
  height: 0.625rem;
  background: rgba(255, 255, 255, 0);
  border: 2px solid #666666;
}
.slick-carousel .slick-arrow {
  position: absolute;
  top: 50%;
  width: 1.875rem;
  height: 1.875rem;
  line-height: 1.875rem;
  font-size: 1.5625rem;
  border-radius: 50%;
  z-index: 350;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
@media only screen and (min-width: 768px) {
  .slick-carousel .slick-arrow {
    margin-top: -1.875rem;
  }
}
.slick-carousel .slick-arrow:hover {
  opacity: 1;
  cursor: pointer;
}
.slick-carousel .slick-prev {
  left: 0.5625rem;
  text-align: left;
}
@media only screen and (min-width: 768px) {
  .slick-carousel .slick-prev {
    left: 0.9375rem;
  }
}
@media only screen and (min-width: 1300px) {
  .slick-carousel .slick-prev {
    left: -1.875rem;
  }
}
.slick-carousel .slick-next {
  right: 0.5625rem;
  text-align: right;
}
@media only screen and (min-width: 768px) {
  .slick-carousel .slick-next {
    margin-top: -0.9375rem;
    right: 0.9375rem;
  }
}
@media only screen and (min-width: 1300px) {
  .slick-carousel .slick-next {
    right: -1.875rem;
  }
}
.slick-carousel--brand .slick-arrow {
  margin-top: 0;
}
.slick-carousel--brand .slick-prev {
  left: -1.4375rem;
}
.slick-carousel--brand .slick-next {
  right: -1.4375rem;
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/smart-project-price-request/smart-project-price-request.scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.smart-project-price-request__form {
  display: inline-block;
}
.smart-project-price-request__tooltip {
  position: relative;
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/table-action-link/table-action-link.scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.table-action-link {
  width: 100%;
  padding: 0.25rem 0.9375rem;
  border: 0.0625rem solid #666666;
  border-radius: 2px;
  text-align: center;
}
@media only screen and (min-width: 768px) {
  .table-action-link {
    padding: 0;
    line-height: normal;
    border: none;
    margin-right: 9px;
  }
}
.table-action-link--tight {
  padding-left: 0.1875rem;
  padding-right: 0.1875rem;
  font-weight: 500;
}
@media only screen and (min-width: 768px) {
  .table-action-link--tight {
    padding: 0;
  }
}
.table-action-link--full-height {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  height: 100%;
}
.table-action-link__title {
  display: block;
  padding-top: 0.1875rem;
  font-size: 0.6875rem;
  line-height: 0.8125rem;
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/table-action-list/table-action-list.scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.table-action-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  padding-top: 15px;
  padding-bottom: 9px;
  margin: 0 -0.25rem;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
@media only screen and (min-width: 768px) {
  .table-action-list {
    width: 100%;
    margin: 0;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
  }
}
.table-action-list--shopping-list {
  display: block;
  background-color: #f0f0f0;
  padding: 0.5625rem 1.25rem;
  margin: 0.5rem 0 0;
}
@media only screen and (min-width: 768px) {
  .table-action-list--shopping-list {
    padding: 0;
    background-color: rgba(255, 255, 255, 0);
  }
}
.table-action-list__inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  margin: 0 -0.25rem;
}
.table-action-list__item {
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  padding: 0 0.25rem;
}
@media only screen and (min-width: 768px) {
  .table-action-list__item {
    -webkit-box-flex: 0;
        -ms-flex-positive: 0;
            flex-grow: 0;
  }
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/tile/tile.scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.tile {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row nowrap;
          flex-flow: row nowrap;
  background-color: #f0f0f0;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.tile__icon {
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
  margin: 2rem 0rem 2rem 2rem;
  width: 2rem;
  height: 2rem;
  color: #666666;
}
.tile__icon:only-child {
  margin: 2rem;
}
.tile__main {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  padding: 2rem;
}
.tile__title {
  color: #666666;
  font-size: 1.125rem;
  font-weight: 500;
}
.tile__text {
  color: #666666;
  font-size: 1rem;
  font-weight: 400;
  margin: 0;
}
.tile__title + .tile__text {
  margin-top: 0.3125rem;
}
.tile + .tile {
  margin-top: 0.625rem;
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/toggler-accordion/toggler-accordion.scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.toggler-accordion__icon {
  position: absolute;
  left: 0;
  top: 50%;
  width: 1rem;
  height: 1rem;
  padding: 0.125rem;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
.toggler-accordion__icon-no-side {
  position: absolute;
  top: 50%;
  width: 1rem;
  height: 1rem;
  padding: 0.125rem;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
.toggler-accordion__item {
  position: relative;
  cursor: pointer;
  padding-left: 1.8rem;
  font-size: 15px;
  line-height: 1.625rem;
}
.toggler-accordion__item.active .toggler-accordion__icon,
.toggler-accordion__item.active .toggler-accordion__icon-no-side {
  -webkit-transform: translateY(-50%) rotate(180deg);
          transform: translateY(-50%) rotate(180deg);
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/toggler-accordion-component/toggler-accordion-component.scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@charset "UTF-8";
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.toggler-accordion-component__title {
  cursor: pointer;
  color: #666666;
  line-height: normal;
  font-size: 0.9375rem;
  font-weight: 400;
  padding: 0.4375rem 0;
}
.toggler-accordion-component__title.is-active {
  font-weight: 500;
}
.toggler-accordion-component__title:after {
  position: relative;
  content: "»";
  font-size: 1.25rem;
  -webkit-transform: rotate(90deg);
          transform: rotate(90deg);
  display: inline-block;
  left: 12px;
  top: 0;
}
.toggler-accordion-component__container {
  max-height: 0;
  overflow: hidden;
  -webkit-transition: max-height 0.3s ease;
  transition: max-height 0.3s ease;
  padding-left: 0.9375rem;
}
.toggler-accordion-component__container.is-active {
  max-height: -webkit-fit-content;
  max-height: -moz-fit-content;
  max-height: fit-content;
}
.toggler-accordion-component__item-wrapper {
  margin-bottom: 0.625rem;
}
.toggler-accordion-component__item-wrapper p {
  font-size: 0.875rem;
  margin: 0;
  font-weight: 500;
}
.toggler-accordion-component__item-wrapper .item-title {
  font-weight: 700;
}
.toggler-accordion-component__icon {
  position: absolute;
  left: 0;
  top: 50%;
  width: 1rem;
  height: 1rem;
  padding: 0.125rem;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/tooltip-info/tooltip-info.scss ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.tooltip-info {
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
  -webkit-transition: all 250ms ease-in-out;
  transition: all 250ms ease-in-out;
  position: absolute;
  width: 12.5rem;
  z-index: 600;
  font-size: 0.9375rem;
  text-align: left;
  background: #fff;
  border: 1px solid;
  padding: 0 0.625rem;
}
.tooltip-info__active {
  pointer-events: all;
  visibility: visible;
  opacity: 1;
}
.tooltip-info__message--headline {
  font-weight: 700;
}
.tooltip-info__direction--top {
  bottom: calc(100% + 5px);
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}
.tooltip-info__direction--top::before {
  content: "";
  position: absolute;
  border-width: 5px;
  border-style: solid;
  border-color: transparent;
  top: 100%;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  border-top-color: #666;
}
.tooltip-info__direction--right {
  left: calc(100% + 5px);
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
.tooltip-info__direction--right::before {
  content: "";
  position: absolute;
  border-width: 5px;
  border-style: solid;
  border-color: transparent;
  right: 100%;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  border-right-color: #666;
}
.tooltip-info__direction--bottom {
  top: calc(100% + 5px);
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}
.tooltip-info__direction--bottom::before {
  content: "";
  position: absolute;
  border-width: 5px;
  border-style: solid;
  border-color: transparent;
  bottom: 100%;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  border-bottom-color: #666;
}
.tooltip-info__direction--left {
  right: calc(100% + 5px);
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
.tooltip-info__direction--left::before {
  content: "";
  position: absolute;
  border-width: 5px;
  border-style: solid;
  border-color: transparent;
  left: 100%;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  border-left-color: #666;
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/components/molecules/user-navigation/user-navigation.scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.center {
  text-align: center;
}

.pt20 {
  padding-top: 1.25rem;
}

@media print {
  .print-hidden {
    display: none;
  }
}

.print-visible {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}
@media print {
  .print-visible {
    visibility: visible;
    height: auto;
    overflow: auto;
  }
}

@media print {
  .col--print-1 {
    width: calc(100% / 12 * 1);
    float: left;
  }
  .col--print-2 {
    width: calc(100% / 12 * 2);
    float: left;
  }
  .col--print-3 {
    width: calc(100% / 12 * 3);
    float: left;
  }
  .col--print-4 {
    width: calc(100% / 12 * 4);
    float: left;
  }
  .col--print-5 {
    width: calc(100% / 12 * 5);
    float: left;
  }
  .col--print-6 {
    width: calc(100% / 12 * 6);
    float: left;
  }
  .col--print-7 {
    width: calc(100% / 12 * 7);
    float: left;
  }
  .col--print-8 {
    width: calc(100% / 12 * 8);
    float: left;
  }
  .col--print-9 {
    width: calc(100% / 12 * 9);
    float: left;
  }
  .col--print-10 {
    width: calc(100% / 12 * 10);
    float: left;
  }
  .col--print-11 {
    width: calc(100% / 12 * 11);
    float: left;
  }
  .col--print-12 {
    width: calc(100% / 12 * 12);
    float: left;
  }
  .usercentrics-button, .slick-arrow, .product-compare__item-remove {
    display: none;
  }
}
@media print {
  .order-detail-rma .header {
    display: none;
  }
}

/**
 * Adds a small arrow on the element for the configured direction.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #E30613;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
.user-navigation {
  padding-left: 43px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
@media only screen and (max-width: 768px) {
  .user-navigation {
    padding-left: 0.625rem;
  }
}
.user-navigation__item {
  max-width: 100px;
  position: relative;
}
@media only screen and (min-width: 1024px) {
  .user-navigation__item {
    max-width: 6.25rem;
    width: auto;
  }
}
.user-navigation__item:not(:first-child) {
  margin-left: 0.9375rem;
}
@media only screen and (min-width: 1024px) {
  .user-navigation__item:not(:first-child) {
    margin-left: 1.875rem;
  }
}
@media only screen and (min-width: 768px) {
  .user-navigation__item:hover .user-navigation__sub-nav {
    -webkit-transform: translateX(-50%) scale(1);
            transform: translateX(-50%) scale(1);
    opacity: 1;
  }
  .user-navigation__item:hover .user-navigation__sub-nav--pull-left {
    -webkit-transform: translateX(-95%) scale(1);
            transform: translateX(-95%) scale(1);
  }
}
@media only screen and (min-width: 768px) and (min-width: 1300px) {
  .user-navigation__item:hover .user-navigation__sub-nav--pull-left {
    -webkit-transform: translateX(-90%) scale(1);
            transform: translateX(-90%) scale(1);
  }
}
@media only screen and (min-width: 550px) and (max-width: 969px) {
  .user-navigation__item--user {
    margin-left: 8.4375rem !important;
  }
}
.user-navigation__link, .user-navigation__user-name {
  display: block;
  color: #666666;
  font-size: 0.9375rem;
  line-height: 1.125rem;
  text-transform: capitalize;
  text-align: center;
  cursor: pointer;
  -webkit-transition: color 250ms ease-in-out;
  transition: color 250ms ease-in-out;
}
@media only screen and (min-width: 768px) {
  .user-navigation__link, .user-navigation__user-name {
    text-align: center;
  }
}
.user-navigation__link:hover, .user-navigation__user-name:hover {
  color: #a6a6a6;
}
.user-navigation__cart-quantity {
  background-color: #E30613;
  border-radius: 2px;
  color: #fff;
  font-size: 0.6875rem;
  margin: 0.1875rem 0rem 0.1875rem 0.375rem;
  text-align: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 1rem;
  height: 1rem;
}
.user-navigation__link {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  font-size: 0.5rem;
  color: #666666;
  padding: 0 0.1875rem;
  letter-spacing: 0;
}
@media only screen and (min-width: 768px) {
  .user-navigation__link {
    display: block;
    font-size: 0.625rem;
    letter-spacing: 0.0375rem;
    padding: 0;
  }
}
.user-navigation__icon {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  font-size: 1.375rem;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  height: 2.1875rem;
}
@media only screen and (min-width: 768px) {
  .user-navigation__icon {
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
  }
}
.user-navigation__text {
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: 1rem;
}
@media only screen and (min-width: 768px) {
  .user-navigation__text {
    display: inline;
    white-space: normal;
  }
}
.user-navigation__arrow {
  margin: 0.9375rem 0 0 0.3125rem;
  width: 0.4375rem;
  height: 0.25rem;
}
.user-navigation__sub-nav {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-transition: opacity 250ms ease-in-out;
  transition: opacity 250ms ease-in-out;
  position: fixed;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  background: #fff;
  border-radius: 2px;
  white-space: nowrap;
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1.93;
  letter-spacing: 0.0125rem;
  opacity: 0;
  -webkit-transform: scale(0);
          transform: scale(0);
  z-index: 403;
}
.user-navigation__sub-nav--touch-active {
  opacity: 1;
  -webkit-transform: scale(1);
          transform: scale(1);
}
@media only screen and (min-width: 768px) {
  .user-navigation__sub-nav {
    -webkit-transition: opacity 250ms ease-in-out, -webkit-transform 250ms ease-in-out;
    transition: opacity 250ms ease-in-out, -webkit-transform 250ms ease-in-out;
    transition: transform 250ms ease-in-out, opacity 250ms ease-in-out;
    transition: transform 250ms ease-in-out, opacity 250ms ease-in-out, -webkit-transform 250ms ease-in-out;
    position: absolute;
    top: 100%;
    left: 50%;
    height: auto;
    width: auto;
    -webkit-transform: translateX(-50%) scale(0);
            transform: translateX(-50%) scale(0);
    -webkit-transform-origin: top center;
            transform-origin: top center;
    -webkit-box-shadow: 0 1.125rem 1.125rem 0 rgba(0, 0, 0, 0.05), 0 0.1875rem 0.1875rem 0 rgba(0, 0, 0, 0.05);
            box-shadow: 0 1.125rem 1.125rem 0 rgba(0, 0, 0, 0.05), 0 0.1875rem 0.1875rem 0 rgba(0, 0, 0, 0.05);
    padding: 1.3125rem 2.375rem 1.3125rem 1.8125rem;
  }
  .user-navigation__sub-nav::before {
    content: "";
    background: #fff;
    position: absolute;
    top: -0.3125rem;
    left: 50%;
    width: 0.625rem;
    height: 0.625rem;
    -webkit-transform: translateX(-50%) rotate(45deg);
            transform: translateX(-50%) rotate(45deg);
  }
  .user-navigation__sub-nav--pull-left::before {
    left: 95%;
  }
}
@media only screen and (min-width: 768px) and (min-width: 1300px) {
  .user-navigation__sub-nav--pull-left::before {
    left: 90%;
  }
}
.user-navigation__sub-nav-inner {
  border-top: 0.0625rem solid #e7eaee;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  overflow: hidden;
  overflow-y: auto;
}
@media only screen and (min-width: 768px) {
  .user-navigation__sub-nav-inner {
    border: none;
    -webkit-box-flex: 0;
        -ms-flex-positive: 0;
            flex-grow: 0;
  }
}
.user-navigation__sub-nav-close {
  position: absolute;
  top: 0.375rem;
  left: 0.5rem;
  width: 2.5rem;
  height: 2.5rem;
  background: none;
}
@media only screen and (min-width: 768px) {
  .user-navigation__sub-nav-close {
    display: none;
  }
}
.user-navigation__sub-nav-title {
  padding: 0.75rem 3.75rem 0.875rem;
  line-height: 1.67;
  text-align: center;
}
@media only screen and (min-width: 768px) {
  .user-navigation__sub-nav-title {
    display: none;
  }
}
.user-navigation__sub-nav-actions {
  padding: 1.3125rem 1rem 1.875rem;
}
@media only screen and (min-width: 768px) {
  .user-navigation__sub-nav-actions {
    padding: 1rem 1.5rem 0.0625rem;
  }
}
.user-navigation__sub-nav-link {
  color: #8f8f8f;
  -webkit-transition: color 250ms ease-in-out;
  transition: color 250ms ease-in-out;
}
.user-navigation__sub-nav-link:hover {
  color: #666666;
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9jc3MveXZlc19kZWZhdWx0LmNyaXRpY2FsLmNzcyIsIm1hcHBpbmdzIjoiOzs7QUFBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QUM4Tko7O0FEM05BO0VBQ0k7QUM4Tko7O0FDcE9JO0VBREo7SUFFUTtFRHdPTjtBQUNGOztBQ3JPQTtFQUNJO0VBQ0E7RUFDQTtBRHdPSjtBQ3RPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0VEeU9OO0FBQ0Y7O0FDdE9BO0VBR1k7SUFDSTtJQUNBO0VEdU9kO0VDek9VO0lBQ0k7SUFDQTtFRDJPZDtFQzdPVTtJQUNJO0lBQ0E7RUQrT2Q7RUNqUFU7SUFDSTtJQUNBO0VEbVBkO0VDclBVO0lBQ0k7SUFDQTtFRHVQZDtFQ3pQVTtJQUNJO0lBQ0E7RUQyUGQ7RUM3UFU7SUFDSTtJQUNBO0VEK1BkO0VDalFVO0lBQ0k7SUFDQTtFRG1RZDtFQ3JRVTtJQUNJO0lBQ0E7RUR1UWQ7RUN6UVU7SUFDSTtJQUNBO0VEMlFkO0VDN1FVO0lBQ0k7SUFDQTtFRCtRZDtFQ2pSVTtJQUNJO0lBQ0E7RURtUmQ7RUM5UUU7SUFDSTtFRGdSTjtBQUNGO0FDM1FRO0VBREo7SUFFUTtFRDhRVjtBQUNGOztBRW5UQTs7RUFBQTtBQ0FBOztFQUFBO0FINkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0NuQjcxRWdCO0VtQjgxRWhCLGNJbjVFUztFSm81RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUtydEhBOzs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7RUFBQTtBQ0dBOzs7Ozs7RUFNRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBVnFaRjs7QVdoYUE7RUFDRTtFQUNBO0VBQ0E7QVhtYUY7O0FXaGFBO0VBQ0U7QVhtYUY7O0FXaGFBO0VBQ0U7QVhtYUY7O0FXL1pFO0VBQ0U7QVhrYUo7O0FXbmFFO0VBQ0U7QVhzYUo7O0FXdmFFO0VBQ0U7QVgwYUo7O0FXM2FFO0VBQ0U7QVg4YUo7O0FXL2FFO0VBQ0U7QVhrYko7O0FXbmJFO0VBQ0U7QVhzYko7O0FXdmJFO0VBQ0U7QVgwYko7O0FXM2JFO0VBQ0U7QVg4Yko7O0FXL2JFO0VBQ0U7QVhrY0o7O0FXbmNFO0VBQ0U7QVhzY0o7O0FZeGRBO0VBQ0U7RUFDQSxhQ09xQjtBYm9kdkI7O0FjNWRBO0VBQ0U7RUFDQSxrQkRLcUI7RUNKckI7QWQrZEY7QWM3ZEU7RUFBTztBZGdlVDs7QWM3ZEE7RUFDRTtFQUNBO0VBQ0E7RUFDQSxhREpxQjtFQ0tyQjtBZGdlRjs7QWU3ZUE7RUFDRTtFQUNBO0VBQ0E7QWZnZkY7O0FlN2VBO0VBQStCO0FmaWYvQjs7QWVoZkE7RUFBZ0M7QWZvZmhDOztBZTdlRTs7Ozs7RUFBZ0M7QWZxZmxDO0FlcGZFOzs7OztFQUFpQztBZjJmbkM7O0FnQjFnQkE7RUFDRTtVQUFBO0FoQjZnQkY7O0FnQjFnQkE7RUFDRTtVQUFBO0FoQjZnQkY7O0FnQjFnQkE7RUFDRTtJQUNFO1lBQUE7RWhCNmdCRjtFZ0IxZ0JBO0lBQ0U7WUFBQTtFaEI0Z0JGO0FBQ0Y7O0FnQm5oQkE7RUFDRTtJQUNFO1lBQUE7RWhCNmdCRjtFZ0IxZ0JBO0lBQ0U7WUFBQTtFaEI0Z0JGO0FBQ0Y7QWlCM2hCQTtFQ1dFO0VBQ0E7VUFBQTtBbEJtaEJGOztBaUI5aEJBO0VDVUU7RUFDQTtVQUFBO0FsQndoQkY7O0FpQmxpQkE7RUNTRTtFQUNBO1VBQUE7QWxCNmhCRjs7QWlCcmlCQTtFQ1lFO0VBQ0E7VUFBQTtBbEI2aEJGOztBaUJ6aUJBO0VDV0U7RUFDQTtVQUFBO0FsQmtpQkY7O0FpQjdpQkE7RUNVRTtFQUNBO1VBQUE7QWxCdWlCRjs7QWlCNWlCRTs7Ozs7O0VBTUU7VUFBQTtBakIraUJKOztBbUJqa0JBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FuQm9rQkY7O0FtQmprQkE7O0VBRUU7RUFDQTtFQUNBO0VBQ0E7QW5Cb2tCRjs7QW1CamtCQTtFQUNFO0FuQm9rQkY7O0FtQmprQkE7RUFDRTtBbkJva0JGOztBbUJqa0JBO0VBQ0UsV05wQnFCO0Fid2xCdkI7O0FvQmptQkE7Z0VBQUE7QUFHQTtFQUFrQztBcEJvbUJsQzs7QW9Cbm1CQTtFQUFtQztBcEJ1bUJuQzs7QW9CdG1CQTtFQUE0QztBcEIwbUI1Qzs7QW9Cem1CQTtFQUFxQztBcEI2bUJyQzs7QW9CNW1CQTtFQUFrQztBcEJnbkJsQzs7QW9CL21CQTtFQUFzRDtBcEJtbkJ0RDs7QW9CbG5CQTtFQUErQjtBcEJzbkIvQjs7QW9Ccm5CQTtFQUF5QztBcEJ5bkJ6Qzs7QW9CeG5CQTtFQUF5QztBcEI0bkJ6Qzs7QW9CM25CQTtFQUFtQztBcEIrbkJuQzs7QW9COW5CQTtFQUFnQztBcEJrb0JoQzs7QW9Cam9CQTtFQUFxQztBcEJxb0JyQzs7QW9CcG9CQTtFQUEyQztBcEJ3b0IzQzs7QW9Cdm9CQTtFQUE0QztBcEIyb0I1Qzs7QW9CMW9CQTtFQUEwQztBcEI4b0IxQzs7QW9CN29CQTtFQUFtQztBcEJpcEJuQzs7QW9CaHBCQTtFQUF3QztBcEJvcEJ4Qzs7QW9CbnBCQTtFQUE4QztBcEJ1cEI5Qzs7QW9CdHBCQTtFQUF1QztBcEIwcEJ2Qzs7QW9CenBCQTtFQUF5QztBcEI2cEJ6Qzs7QW9CNXBCQTtFQUFrQztBcEJncUJsQzs7QW9CL3BCQTtFQUE2QztBcEJtcUI3Qzs7QW9CbHFCQTtFQUFvQztBcEJzcUJwQzs7QW9CcnFCQTtFQUFvQztBcEJ5cUJwQzs7QW9CeHFCQTtFQUFrQztBcEI0cUJsQzs7QW9CM3FCQTtFQUEwQztBcEIrcUIxQzs7QW9COXFCQTtFQUF5QztBcEJrckJ6Qzs7QW9CanJCQTtFQUEwQztBcEJxckIxQzs7QW9CcHJCQTtFQUF1QztBcEJ3ckJ2Qzs7QW9CdnJCQTtFQUF3QztBcEIyckJ4Qzs7QW9CMXJCQTtFQUF3QztBcEI4ckJ4Qzs7QW9CN3JCQTtFQUFtQztBcEJpc0JuQzs7QW9CaHNCQTtFQUFzQztBcEJvc0J0Qzs7QW9CbnNCQTtFQUFtQztBcEJ1c0JuQzs7QW9CdHNCQTtFQUF1QztBcEIwc0J2Qzs7QW9CenNCQTtFQUFzQztBcEI2c0J0Qzs7QW9CNXNCQTtFQUFnRTtBcEJndEJoRTs7QW9CL3NCQTtFQUFtQztBcEJtdEJuQzs7QW9CbHRCQTtFQUF1QztBcEJzdEJ2Qzs7QW9CcnRCQTtFQUFzQztBcEJ5dEJ0Qzs7QW9CeHRCQTtFQUFtQztBcEI0dEJuQzs7QW9CM3RCQTtFQUFvQztBcEIrdEJwQzs7QW9COXRCQTtFQUFrQztBcEJrdUJsQzs7QW9CanVCQTtFQUFzQztBcEJxdUJ0Qzs7QW9CcHVCQTtFQUE4QztBcEJ3dUI5Qzs7QW9CdnVCQTtFQUE4QztBcEIydUI5Qzs7QW9CMXVCQTtFQUErQztBcEI4dUIvQzs7QW9CN3VCQTtFQUE0QztBcEJpdkI1Qzs7QW9CaHZCQTtFQUF1QztBcEJvdkJ2Qzs7QW9CbnZCQTtFQUF1QztBcEJ1dkJ2Qzs7QW9CdHZCQTtFQUF3QztBcEIwdkJ4Qzs7QW9CenZCQTtFQUFxQztBcEI2dkJyQzs7QW9CNXZCQTtFQUFrQztBcEJnd0JsQzs7QW9CL3ZCQTtFQUEwQztBcEJtd0IxQzs7QW9CbHdCQTtFQUFvQztBcEJzd0JwQzs7QW9CcndCQTtFQUFpQztBcEJ5d0JqQzs7QW9CeHdCQTtFQUFzQztBcEI0d0J0Qzs7QW9CM3dCQTtFQUEwQztBcEIrd0IxQzs7QW9COXdCQTtFQUFrQztBcEJreEJsQzs7QW9CanhCQTtFQUFrQztBcEJxeEJsQzs7QW9CcHhCQTtFQUFzQztBcEJ3eEJ0Qzs7QW9CdnhCQTtFQUF3QztBcEIyeEJ4Qzs7QW9CMXhCQTtFQUFzQztBcEI4eEJ0Qzs7QW9CN3hCQTtFQUFvQztBcEJpeUJwQzs7QW9CaHlCQTtFQUFvQztBcEJveUJwQzs7QW9CbnlCQTtFQUFrRDtBcEJ1eUJsRDs7QW9CdHlCQTtFQUFrRDtBcEIweUJsRDs7QW9CenlCQTtFQUFtRDtBcEI2eUJuRDs7QW9CNXlCQTtFQUFnRDtBcEJnekJoRDs7QW9CL3lCQTtFQUEyQztBcEJtekIzQzs7QW9CbHpCQTtFQUFrRDtBcEJzekJsRDs7QW9CcnpCQTtFQUFnRDtBcEJ5ekJoRDs7QW9CeHpCQTtFQUFpRDtBcEI0ekJqRDs7QW9CM3pCQTtFQUErQztBcEIrekIvQzs7QW9COXpCQTtFQUEyQztBcEJrMEIzQzs7QW9CajBCQTtFQUE0QztBcEJxMEI1Qzs7QW9CcDBCQTtFQUFrRDtBcEJ3MEJsRDs7QW9CdjBCQTtFQUFrRDtBcEIyMEJsRDs7QW9CMTBCQTtFQUFtRDtBcEI4MEJuRDs7QW9CNzBCQTtFQUFnRDtBcEJpMUJoRDs7QW9CaDFCQTtFQUFnRDtBcEJvMUJoRDs7QW9CbjFCQTtFQUE4QztBcEJ1MUI5Qzs7QW9CdDFCQTtFQUErQztBcEIwMUIvQzs7QW9CejFCQTtFQUE2QztBcEI2MUI3Qzs7QW9CNTFCQTtFQUF5QztBcEJnMkJ6Qzs7QW9CLzFCQTtFQUE4QztBcEJtMkI5Qzs7QW9CbDJCQTtFQUE4QztBcEJzMkI5Qzs7QW9CcjJCQTtFQUErQztBcEJ5MkIvQzs7QW9CeDJCQTtFQUE0QztBcEI0MkI1Qzs7QW9CMzJCQTtFQUF1QztBcEIrMkJ2Qzs7QW9COTJCQTtFQUE4QztBcEJrM0I5Qzs7QW9CajNCQTtFQUE0QztBcEJxM0I1Qzs7QW9CcDNCQTtFQUE2QztBcEJ3M0I3Qzs7QW9CdjNCQTtFQUEyQztBcEIyM0IzQzs7QW9CMTNCQTtFQUF1QztBcEI4M0J2Qzs7QW9CNzNCQTtFQUF3QztBcEJpNEJ4Qzs7QW9CaDRCQTtFQUE4QztBcEJvNEI5Qzs7QW9CbjRCQTtFQUE4QztBcEJ1NEI5Qzs7QW9CdDRCQTtFQUErQztBcEIwNEIvQzs7QW9CejRCQTtFQUE0QztBcEI2NEI1Qzs7QW9CNTRCQTtFQUE0QztBcEJnNUI1Qzs7QW9CLzRCQTtFQUEwQztBcEJtNUIxQzs7QW9CbDVCQTtFQUEyQztBcEJzNUIzQzs7QW9CcjVCQTtFQUF5QztBcEJ5NUJ6Qzs7QW9CeDVCQTtFQUFxQztBcEI0NUJyQzs7QW9CMzVCQTtFQUFtQztBcEIrNUJuQzs7QW9COTVCQTtFQUF1QztBcEJrNkJ2Qzs7QW9CajZCQTtFQUF5QztBcEJxNkJ6Qzs7QW9CcDZCQTtFQUF5QztBcEJ3NkJ6Qzs7QW9CdjZCQTtFQUFxQztBcEIyNkJyQzs7QW9CMTZCQTtFQUFxQztBcEI4NkJyQzs7QW9CNzZCQTtFQUF1QztBcEJpN0J2Qzs7QW9CaDdCQTtFQUF3RDtBcEJvN0J4RDs7QW9CbjdCQTtFQUFxQztBcEJ1N0JyQzs7QW9CdDdCQTtFQUF1QztBcEIwN0J2Qzs7QW9CejdCQTtFQUErQjtBcEI2N0IvQjs7QW9CNTdCQTtFQUFrQztBcEJnOEJsQzs7QW9CLzdCQTtFQUFzQztBcEJtOEJ0Qzs7QW9CbDhCQTtFQUFpQztBcEJzOEJqQzs7QW9CcjhCQTtFQUFxQztBcEJ5OEJyQzs7QW9CeDhCQTtFQUFvQztBcEI0OEJwQzs7QW9CMzhCQTtFQUE4QztBcEIrOEI5Qzs7QW9COThCQTtFQUF5QztBcEJrOUJ6Qzs7QW9CajlCQTtFQUFvQztBcEJxOUJwQzs7QW9CcDlCQTtFQUFtQztBcEJ3OUJuQzs7QW9CdjlCQTtFQUFrQztBcEIyOUJsQzs7QW9CMTlCQTtFQUFnQztBcEI4OUJoQzs7QW9CNzlCQTtFQUFnQztBcEJpK0JoQzs7QW9CaCtCQTtFQUF1QztBcEJvK0J2Qzs7QW9CbitCQTtFQUFpQztBcEJ1K0JqQzs7QW9CdCtCQTtFQUEwQztBcEIwK0IxQzs7QW9CeitCQTtFQUFxQztBcEI2K0JyQzs7QW9CNStCQTtFQUFzQztBcEJnL0J0Qzs7QW9CLytCQTtFQUFxQztBcEJtL0JyQzs7QW9CbC9CQTtFQUFrQztBcEJzL0JsQzs7QW9Cci9CQTtFQUFxQztBcEJ5L0JyQzs7QW9CeC9CQTtFQUFzQztBcEI0L0J0Qzs7QW9CMy9CQTtFQUFrQztBcEIrL0JsQzs7QW9COS9CQTtFQUF3QztBcEJrZ0N4Qzs7QW9CamdDQTtFQUF5QztBcEJxZ0N6Qzs7QW9CcGdDQTtFQUEwQztBcEJ3Z0MxQzs7QW9CdmdDQTtFQUEwQztBcEIyZ0MxQzs7QW9CMWdDQTtFQUF5QztBcEI4Z0N6Qzs7QW9CN2dDQTtFQUEwQztBcEJpaEMxQzs7QW9CaGhDQTtFQUFrQztBcEJvaENsQzs7QW9CbmhDQTtFQUEwQztBcEJ1aEMxQzs7QW9CdGhDQTtFQUErQztBcEIwaEMvQzs7QW9CemhDQTtFQUFnRDtBcEI2aENoRDs7QW9CNWhDQTtFQUFzQztBcEJnaUN0Qzs7QW9CL2hDQTtFQUFtQztBcEJtaUNuQzs7QW9CbGlDQTtFQUF5QztBcEJzaUN6Qzs7QW9CcmlDQTtFQUFnQztBcEJ5aUNoQzs7QW9CeGlDQTtFQUFxQztBcEI0aUNyQzs7QW9CM2lDQTtFQUFxQztBcEIraUNyQzs7QW9COWlDQTtFQUFrQztBcEJrakNsQzs7QW9CampDQTtFQUFvQztBcEJxakNwQzs7QW9CcGpDQTtFQUF3QztBcEJ3akN4Qzs7QW9CdmpDQTtFQUF5QztBcEIyakN6Qzs7QW9CMWpDQTtFQUF5QztBcEI4akN6Qzs7QW9CN2pDQTtFQUFpQztBcEJpa0NqQzs7QW9CaGtDQTtFQUFxQztBcEJva0NyQzs7QW9CbmtDQTtFQUEwQztBcEJ1a0MxQzs7QW9CdGtDQTtFQUE0QztBcEIwa0M1Qzs7QW9CemtDQTtFQUE0QztBcEI2a0M1Qzs7QW9CNWtDQTtFQUFnQztBcEJnbENoQzs7QW9CL2tDQTtFQUFpQztBcEJtbENqQzs7QW9CbGxDQTtFQUF5QztBcEJzbEN6Qzs7QW9CcmxDQTtFQUEwQztBcEJ5bEMxQzs7QW9CeGxDQTtFQUF5QztBcEI0bEN6Qzs7QW9CM2xDQTtFQUF5QztBcEIrbEN6Qzs7QW9COWxDQTtFQUE0QztBcEJrbUM1Qzs7QW9Cam1DQTtFQUEwQztBcEJxbUMxQzs7QW9CcG1DQTtFQUFtRDtBcEJ3bUNuRDs7QW9Cdm1DQTtFQUF1QztBcEIybUN2Qzs7QW9CMW1DQTtFQUFnQztBcEI4bUNoQzs7QW9CN21DQTtFQUFvQztBcEJpbkNwQzs7QW9CaG5DQTtFQUFxQztBcEJvbkNyQzs7QW9Cbm5DQTtFQUFzQztBcEJ1bkN0Qzs7QW9CdG5DQTtFQUFpQztBcEIwbkNqQzs7QW9Cem5DQTtFQUFvQztBcEI2bkNwQzs7QW9CNW5DQTtFQUEyQztBcEJnb0MzQzs7QW9CL25DQTtFQUFpQztBcEJtb0NqQzs7QW9CbG9DQTtFQUE2QztBcEJzb0M3Qzs7QW9Ccm9DQTtFQUFvQztBcEJ5b0NwQzs7QW9CeG9DQTtFQUFzQztBcEI0b0N0Qzs7QW9CM29DQTtFQUF3QztBcEIrb0N4Qzs7QW9COW9DQTtFQUE4QztBcEJrcEM5Qzs7QW9CanBDQTtFQUF1QztBcEJxcEN2Qzs7QW9CcHBDQTtFQUFrQztBcEJ3cENsQzs7QW9CdnBDQTtFQUFvQztBcEIycENwQzs7QW9CMXBDQTtFQUF5QztBcEI4cEN6Qzs7QW9CN3BDQTtFQUFrQztBcEJpcUNsQzs7QW9CaHFDQTtFQUFvQztBcEJvcUNwQzs7QW9CbnFDQTtFQUFtQztBcEJ1cUNuQzs7QW9CdHFDQTtFQUE0QztBcEIwcUM1Qzs7QW9CenFDQTtFQUFzQztBcEI2cUN0Qzs7QW9CNXFDQTtFQUF1QztBcEJnckN2Qzs7QW9CL3FDQTtFQUFzQztBcEJtckN0Qzs7QW9CbHJDQTtFQUEwQztBcEJzckMxQzs7QW9CcnJDQTtFQUFzQztBcEJ5ckN0Qzs7QW9CeHJDQTtFQUFvQztBcEI0ckNwQzs7QW9CM3JDQTtFQUFpQztBcEIrckNqQzs7QW9COXJDQTtFQUFzQztBcEJrc0N0Qzs7QW9CanNDQTtFQUF1QztBcEJxc0N2Qzs7QW9CcHNDQTtFQUFvQztBcEJ3c0NwQzs7QW9CdnNDQTtFQUFvQztBcEIyc0NwQzs7QW9CMXNDQTtFQUEwQztBcEI4c0MxQzs7QW9CN3NDQTtFQUFrQztBcEJpdENsQzs7QW9CaHRDQTtFQUFtQztBcEJvdENuQzs7QW9CbnRDQTtFQUF3QztBcEJ1dEN4Qzs7QW9CdHRDQTtFQUEwQztBcEIwdEMxQzs7QW9CenRDQTtFQUFpQztBcEI2dENqQzs7QW9CNXRDQTtFQUFvQztBcEJndUNwQzs7QW9CL3RDQTtFQUFzQztBcEJtdUN0Qzs7QW9CbHVDQTtFQUFzQztBcEJzdUN0Qzs7QW9CcnVDQTtFQUF3QztBcEJ5dUN4Qzs7QW9CeHVDQTtFQUFpQztBcEI0dUNqQzs7QW9CM3VDQTtFQUFpQztBcEIrdUNqQzs7QW9COXVDQTtFQUFpQztBcEJrdkNqQzs7QW9CanZDQTtFQUFpQztBcEJxdkNqQzs7QW9CcHZDQTtFQUF1QztBcEJ3dkN2Qzs7QW9CdnZDQTtFQUFpQztBcEIydkNqQzs7QW9CMXZDQTtFQUFpQztBcEI4dkNqQzs7QW9CN3ZDQTtFQUFxQztBcEJpd0NyQzs7QW9CaHdDQTtFQUFzQztBcEJvd0N0Qzs7QW9CbndDQTtFQUF1QztBcEJ1d0N2Qzs7QW9CdHdDQTtFQUF5QztBcEIwd0N6Qzs7QW9CendDQTtFQUFzQztBcEI2d0N0Qzs7QW9CNXdDQTtFQUF3QztBcEJneEN4Qzs7QW9CL3dDQTtFQUF3QztBcEJteEN4Qzs7QW9CbHhDQTtFQUFzQztBcEJzeEN0Qzs7QW9CcnhDQTtFQUFxQztBcEJ5eENyQzs7QW9CeHhDQTtFQUFrQztBcEI0eENsQzs7QW9CM3hDQTtFQUEwQztBcEIreEMxQzs7QW9COXhDQTtFQUFvQztBcEJreUNwQzs7QW9CanlDQTtFQUFpQztBcEJxeUNqQzs7QW9CcHlDQTtFQUEwQztBcEJ3eUMxQzs7QW9CdnlDQTtFQUFzQztBcEIyeUN0Qzs7QW9CMXlDQTtFQUF1QztBcEI4eUN2Qzs7QW9CN3lDQTtFQUEwQztBcEJpekMxQzs7QW9CaHpDQTtFQUE0QztBcEJvekM1Qzs7QW9CbnpDQTtFQUE0QztBcEJ1ekM1Qzs7QW9CdHpDQTtFQUF5QztBcEIwekN6Qzs7QW9CenpDQTtFQUF3QztBcEI2ekN4Qzs7QW9CNXpDQTtFQUF3QztBcEJnMEN4Qzs7QW9CL3pDQTtFQUF5QztBcEJtMEN6Qzs7QW9CbDBDQTtFQUF5QztBcEJzMEN6Qzs7QW9CcjBDQTtFQUF5QztBcEJ5MEN6Qzs7QW9CeDBDQTtFQUE2QztBcEI0MEM3Qzs7QW9CMzBDQTtFQUF1QztBcEIrMEN2Qzs7QW9COTBDQTtFQUFzQztBcEJrMUN0Qzs7QW9CajFDQTtFQUF5QztBcEJxMUN6Qzs7QW9CcDFDQTtFQUF5QztBcEJ3MUN6Qzs7QW9CdjFDQTtFQUFnQztBcEIyMUNoQzs7QW9CMTFDQTtFQUFvQztBcEI4MUNwQzs7QW9CNzFDQTtFQUF1QztBcEJpMkN2Qzs7QW9CaDJDQTtFQUFzQztBcEJvMkN0Qzs7QW9CbjJDQTtFQUF3QztBcEJ1MkN4Qzs7QW9CdDJDQTtFQUFxQztBcEIwMkNyQzs7QW9CejJDQTtFQUFzQztBcEI2MkN0Qzs7QW9CNTJDQTtFQUFxQztBcEJnM0NyQzs7QW9CLzJDQTtFQUF1QztBcEJtM0N2Qzs7QW9CbDNDQTtFQUFtQztBcEJzM0NuQzs7QW9CcjNDQTtFQUFvQztBcEJ5M0NwQzs7QW9CeDNDQTtFQUFrQztBcEI0M0NsQzs7QW9CMzNDQTtFQUFzQztBcEIrM0N0Qzs7QW9COTNDQTtFQUF5QztBcEJrNEN6Qzs7QW9CajRDQTtFQUFxQztBcEJxNENyQzs7QW9CcDRDQTtFQUEyQztBcEJ3NEMzQzs7QW9CdjRDQTtFQUFvQztBcEIyNENwQzs7QW9CMTRDQTtFQUFrQztBcEI4NENsQzs7QW9CNzRDQTtFQUF1QztBcEJpNUN2Qzs7QW9CaDVDQTtFQUF3QztBcEJvNUN4Qzs7QW9CbjVDQTtFQUFzQztBcEJ1NUN0Qzs7QW9CdDVDQTtFQUE4QztBcEIwNUM5Qzs7QW9CejVDQTtFQUEwQztBcEI2NUMxQzs7QW9CNTVDQTtFQUF3QztBcEJnNkN4Qzs7QW9CLzVDQTtFQUE0QztBcEJtNkM1Qzs7QW9CbDZDQTtFQUFrQztBcEJzNkNsQzs7QW9CcjZDQTtFQUFvQztBcEJ5NkNwQzs7QW9CeDZDQTtFQUFrQztBcEI0NkNsQzs7QW9CMzZDQTtFQUFnQztBcEIrNkNoQzs7QW9COTZDQTtFQUFtQztBcEJrN0NuQzs7QW9CajdDQTtFQUFnQztBcEJxN0NoQzs7QW9CcDdDQTtFQUFxQztBcEJ3N0NyQzs7QW9CdjdDQTtFQUFxQztBcEIyN0NyQzs7QW9CMTdDQTtFQUFxQztBcEI4N0NyQzs7QW9CNzdDQTtFQUEyQztBcEJpOEMzQzs7QW9CaDhDQTtFQUE2QztBcEJvOEM3Qzs7QW9CbjhDQTtFQUF3QztBcEJ1OEN4Qzs7QW9CdDhDQTtFQUFpQztBcEIwOENqQzs7QW9CejhDQTtFQUE2QztBcEI2OEM3Qzs7QW9CNThDQTtFQUFvQztBcEJnOUNwQzs7QW9CLzhDQTtFQUFnQztBcEJtOUNoQzs7QW9CbDlDQTtFQUFvQztBcEJzOUNwQzs7QW9CcjlDQTtFQUF1QztBcEJ5OUN2Qzs7QW9CeDlDQTtFQUEwQztBcEI0OUMxQzs7QW9CMzlDQTtFQUF3QztBcEIrOUN4Qzs7QW9COTlDQTtFQUF1QztBcEJrK0N2Qzs7QW9CaitDQTtFQUEyQztBcEJxK0MzQzs7QW9CcCtDQTtFQUFtQztBcEJ3K0NuQzs7QW9CditDQTtFQUF1QztBcEIyK0N2Qzs7QW9CMStDQTtFQUEyQztBcEI4K0MzQzs7QW9CNytDQTtFQUFxQztBcEJpL0NyQzs7QW9CaC9DQTtFQUF5QztBcEJvL0N6Qzs7QW9Cbi9DQTtFQUEyQztBcEJ1L0MzQzs7QW9CdC9DQTtFQUF5QztBcEIwL0N6Qzs7QW9Cei9DQTtFQUEwQztBcEI2L0MxQzs7QW9CNS9DQTtFQUFpRDtBcEJnZ0RqRDs7QW9CLy9DQTtFQUEyQztBcEJtZ0QzQzs7QW9CbGdEQTtFQUEwQztBcEJzZ0QxQzs7QW9CcmdEQTtFQUEwQztBcEJ5Z0QxQzs7QW9CeGdEQTtFQUEyQztBcEI0Z0QzQzs7QW9CM2dEQTtFQUEwQztBcEIrZ0QxQzs7QW9COWdEQTtFQUFzQztBcEJraER0Qzs7QW9CamhEQTtFQUFtQztBcEJxaERuQzs7QW9CcGhEQTtFQUF1QztBcEJ3aER2Qzs7QW9CdmhEQTtFQUF3QztBcEIyaER4Qzs7QW9CMWhEQTtFQUF5QztBcEI4aER6Qzs7QW9CN2hEQTtFQUE0QztBcEJpaUQ1Qzs7QW9CaGlEQTtFQUF5QztBcEJvaUR6Qzs7QW9CbmlEQTtFQUFxQztBcEJ1aURyQzs7QW9CdGlEQTtFQUF1QztBcEIwaUR2Qzs7QW9CemlEQTtFQUFnRDtBcEI2aURoRDs7QW9CNWlEQTtFQUEwQztBcEJnakQxQzs7QW9CL2lEQTtFQUF1QztBcEJtakR2Qzs7QW9CbGpEQTtFQUF1QztBcEJzakR2Qzs7QW9CcmpEQTtFQUFxQztBcEJ5akRyQzs7QW9CeGpEQTtFQUFxQztBcEI0akRyQzs7QW9CM2pEQTtFQUFnQztBcEIrakRoQzs7QW9COWpEQTtFQUFvQztBcEJra0RwQzs7QW9CamtEQTtFQUF3QztBcEJxa0R4Qzs7QW9CcGtEQTtFQUF5QztBcEJ3a0R6Qzs7QW9CdmtEQTtFQUFxQztBcEIya0RyQzs7QW9CMWtEQTtFQUFvQztBcEI4a0RwQzs7QW9CN2tEQTtFQUFzQztBcEJpbER0Qzs7QW9CaGxEQTtFQUF1QztBcEJvbER2Qzs7QW9CbmxEQTtFQUF5QztBcEJ1bER6Qzs7QW9CdGxEQTtFQUFxQztBcEIwbERyQzs7QW9CemxEQTtFQUFxQztBcEI2bERyQzs7QW9CNWxEQTtFQUFxQztBcEJnbURyQzs7QW9CL2xEQTtFQUFvQztBcEJtbURwQzs7QW9CbG1EQTtFQUF3QztBcEJzbUR4Qzs7QW9Ccm1EQTtFQUE4QztBcEJ5bUQ5Qzs7QW9CeG1EQTtFQUE4QztBcEI0bUQ5Qzs7QW9CM21EQTtFQUErQztBcEIrbUQvQzs7QW9COW1EQTtFQUE0QztBcEJrbkQ1Qzs7QW9Cam5EQTtFQUF1QztBcEJxbkR2Qzs7QW9CcG5EQTtFQUF1QztBcEJ3bkR2Qzs7QW9Cdm5EQTtFQUF3QztBcEIybkR4Qzs7QW9CMW5EQTtFQUE4QztBcEI4bkQ5Qzs7QW9CN25EQTtFQUE4QztBcEJpb0Q5Qzs7QW9CaG9EQTtFQUErQztBcEJvb0QvQzs7QW9Cbm9EQTtFQUE0QztBcEJ1b0Q1Qzs7QW9CdG9EQTtFQUFxQztBcEIwb0RyQzs7QW9Cem9EQTtFQUFtQztBcEI2b0RuQzs7QW9CNW9EQTtFQUFpQztBcEJncERqQzs7QW9CL29EQTtFQUE0QztBcEJtcEQ1Qzs7QW9CbHBEQTtFQUFzQztBcEJzcER0Qzs7QW9CcnBEQTtFQUEwQztBcEJ5cEQxQzs7QW9CeHBEQTtFQUEwQztBcEI0cEQxQzs7QW9CM3BEQTtFQUFnQztBcEIrcERoQzs7QW9COXBEQTtFQUFzQztBcEJrcUR0Qzs7QW9CanFEQTtFQUFxQztBcEJxcURyQzs7QW9CcHFEQTtFQUEwQztBcEJ3cUQxQzs7QW9CdnFEQTtFQUFvQztBcEIycURwQzs7QW9CMXFEQTtFQUF5QztBcEI4cUR6Qzs7QW9CN3FEQTtFQUEyQztBcEJpckQzQzs7QW9CaHJEQTtFQUF3QztBcEJvckR4Qzs7QW9CbnJEQTtFQUFtQztBcEJ1ckRuQzs7QW9CdHJEQTtFQUEwQztBcEIwckQxQzs7QW9CenJEQTtFQUFzQztBcEI2ckR0Qzs7QW9CNXJEQTtFQUFzQztBcEJnc0R0Qzs7QW9CL3JEQTtFQUFvQztBcEJtc0RwQzs7QW9CbHNEQTtFQUFpQztBcEJzc0RqQzs7QW9CcnNEQTtFQUF1QztBcEJ5c0R2Qzs7QW9CeHNEQTtFQUFtQztBcEI0c0RuQzs7QW9CM3NEQTtFQUF3QztBcEIrc0R4Qzs7QW9COXNEQTtFQUFrQztBcEJrdERsQzs7QW9CanREQTtFQUF5QztBcEJxdER6Qzs7QW9CcHREQTtFQUF1QztBcEJ3dER2Qzs7QW9CdnREQTtFQUErQztBcEIydEQvQzs7QW9CMXREQTtFQUE2QztBcEI4dEQ3Qzs7QW9CN3REQTtFQUF1QztBcEJpdUR2Qzs7QW9CaHVEQTtFQUFzQztBcEJvdUR0Qzs7QW9CbnVEQTtFQUF1QztBcEJ1dUR2Qzs7QW9CdHVEQTtFQUE0QztBcEIwdUQ1Qzs7QW9CenVEQTtFQUEwQztBcEI2dUQxQzs7QW9CNXVEQTtFQUFzQztBcEJndkR0Qzs7QW9CL3VEQTtFQUEwQztBcEJtdkQxQzs7QW9CbHZEQTtFQUEwQztBcEJzdkQxQzs7QW9CcnZEQTtFQUFrQztBcEJ5dkRsQzs7QW9CeHZEQTtFQUF5QztBcEI0dkR6Qzs7QW9CM3ZEQTtFQUF5QztBcEIrdkR6Qzs7QW9COXZEQTtFQUF5QztBcEJrd0R6Qzs7QW9CandEQTtFQUFtQztBcEJxd0RuQzs7QW9CcHdEQTtFQUF5QztBcEJ3d0R6Qzs7QW9CdndEQTtFQUF5QztBcEIyd0R6Qzs7QW9CMXdEQTtFQUFrQztBcEI4d0RsQzs7QW9CN3dEQTtFQUF5QztBcEJpeER6Qzs7QW9CaHhEQTtFQUE2QztBcEJveEQ3Qzs7QW9CbnhEQTtFQUF3QztBcEJ1eER4Qzs7QW9CdHhEQTtFQUF3QztBcEIweER4Qzs7QW9CenhEQTtFQUE0QztBcEI2eEQ1Qzs7QW9CNXhEQTtFQUF1QztBcEJneUR2Qzs7QW9CL3hEQTtFQUEyQztBcEJteUQzQzs7QW9CbHlEQTtFQUF5QztBcEJzeUR6Qzs7QW9CcnlEQTtFQUE2QztBcEJ5eUQ3Qzs7QW9CeHlEQTtFQUF1QztBcEI0eUR2Qzs7QW9CM3lEQTtFQUEyQztBcEIreUQzQzs7QW9COXlEQTtFQUF3QztBcEJrekR4Qzs7QW9CanpEQTtFQUE0QztBcEJxekQ1Qzs7QW9CcHpEQTtFQUF1QztBcEJ3ekR2Qzs7QW9CdnpEQTtFQUEyQztBcEIyekQzQzs7QW9CMXpEQTtFQUFnRDtBcEI4ekRoRDs7QW9CN3pEQTtFQUFnRDtBcEJpMERoRDs7QW9CaDBEQTtFQUFpRDtBcEJvMERqRDs7QW9CbjBEQTtFQUE4QztBcEJ1MEQ5Qzs7QW9CdDBEQTtFQUFnRDtBcEIwMERoRDs7QW9CejBEQTtFQUFnRDtBcEI2MERoRDs7QW9CNTBEQTtFQUFpRDtBcEJnMURqRDs7QW9CLzBEQTtFQUE4QztBcEJtMUQ5Qzs7QW9CbDFEQTtFQUF5QztBcEJzMUR6Qzs7QW9CcjFEQTtFQUF5QztBcEJ5MUR6Qzs7QW9CeDFEQTtFQUEwQztBcEI0MUQxQzs7QW9CMzFEQTtFQUFnRDtBcEIrMURoRDs7QW9COTFEQTtFQUFnRDtBcEJrMkRoRDs7QW9CajJEQTtFQUFpRDtBcEJxMkRqRDs7QW9CcDJEQTtFQUE4QztBcEJ3MkQ5Qzs7QW9CdjJEQTtFQUF1QztBcEIyMkR2Qzs7QW9CMTJEQTtFQUFrQztBcEI4MkRsQzs7QW9CNzJEQTtFQUFvQztBcEJpM0RwQzs7QW9CaDNEQTtFQUFtQztBcEJvM0RuQzs7QW9CbjNEQTtFQUF1QztBcEJ1M0R2Qzs7QW9CdDNEQTtFQUFtQztBcEIwM0RuQzs7QW9CejNEQTtFQUFtQztBcEI2M0RuQzs7QW9CNTNEQTtFQUF5QztBcEJnNER6Qzs7QW9CLzNEQTtFQUFpQztBcEJtNERqQzs7QW9CbDREQTtFQUFxQztBcEJzNERyQzs7QW9CcjREQTtFQUF1QztBcEJ5NER2Qzs7QW9CeDREQTtFQUEyQztBcEI0NEQzQzs7QW9CMzREQTtFQUFzQztBcEIrNER0Qzs7QW9COTREQTtFQUE0QztBcEJrNUQ1Qzs7QW9CajVEQTtFQUEyQztBcEJxNUQzQzs7QW9CcDVEQTtFQUFpRDtBcEJ3NURqRDs7QW9CdjVEQTtFQUFtRDtBcEIyNURuRDs7QW9CMTVEQTtFQUEyQztBcEI4NUQzQzs7QW9CNzVEQTtFQUFrQztBcEJpNkRsQzs7QW9CaDZEQTtFQUFrQztBcEJvNkRsQzs7QW9CbjZEQTtFQUE4QztBcEJ1NkQ5Qzs7QW9CdDZEQTtFQUFrQztBcEIwNkRsQzs7QW9CejZEQTtFQUEyQztBcEI2NkQzQzs7QW9CNTZEQTtFQUErQztBcEJnN0QvQzs7QW9CLzZEQTtFQUEwQztBcEJtN0QxQzs7QW9CbDdEQTtFQUF1QztBcEJzN0R2Qzs7QW9CcjdEQTtFQUE2QztBcEJ5N0Q3Qzs7QW9CeDdEQTtFQUEyQztBcEI0N0QzQzs7QW9CMzdEQTtFQUF1QztBcEIrN0R2Qzs7QW9COTdEQTtFQUE0QztBcEJrOEQ1Qzs7QW9CajhEQTtFQUF3QztBcEJxOER4Qzs7QW9CcDhEQTtFQUF1QztBcEJ3OER2Qzs7QW9CdjhEQTtFQUEwQztBcEIyOEQxQzs7QW9CMThEQTtFQUEwQztBcEI4OEQxQzs7QW9CNzhEQTtFQUFnRDtBcEJpOURoRDs7QW9CaDlEQTtFQUF3QztBcEJvOUR4Qzs7QW9CbjlEQTtFQUF1QztBcEJ1OUR2Qzs7QW9CdDlEQTtFQUFzQztBcEIwOUR0Qzs7QW9CejlEQTtFQUEyQztBcEI2OUQzQzs7QW9CNTlEQTtFQUF5QztBcEJnK0R6Qzs7QW9CLzlEQTtFQUE2QztBcEJtK0Q3Qzs7QW9CbCtEQTtFQUF1QztBcEJzK0R2Qzs7QW9CcitEQTtFQUFtQztBcEJ5K0RuQzs7QW9CeCtEQTtFQUF3QztBcEI0K0R4Qzs7QW9CMytEQTtFQUF1QztBcEIrK0R2Qzs7QW9COStEQTtFQUF1QztBcEJrL0R2Qzs7QW9Cai9EQTtFQUF1QztBcEJxL0R2Qzs7QW9CcC9EQTtFQUF5QztBcEJ3L0R6Qzs7QW9Cdi9EQTtFQUFpQztBcEIyL0RqQzs7QW9CMS9EQTtFQUFxQztBcEI4L0RyQzs7QW9CNy9EQTtFQUFpQztBcEJpZ0VqQzs7QW9CaGdFQTtFQUF3QztBcEJvZ0V4Qzs7QW9CbmdFQTtFQUF3QztBcEJ1Z0V4Qzs7QW9CdGdFQTtFQUF1QztBcEIwZ0V2Qzs7QW9CemdFQTtFQUFvQztBcEI2Z0VwQzs7QW9CNWdFQTtFQUFxQztBcEJnaEVyQzs7QW9CL2dFQTtFQUFtQztBcEJtaEVuQzs7QW9CbGhFQTtFQUF1QztBcEJzaEV2Qzs7QW9CcmhFQTtFQUF3QztBcEJ5aEV4Qzs7QW9CeGhFQTtFQUFtQztBcEI0aEVuQzs7QW9CM2hFQTtFQUF5QztBcEIraEV6Qzs7QW9COWhFQTtFQUFnQztBcEJraUVoQzs7QW9CamlFQTtFQUFpQztBcEJxaUVqQzs7QW9CcGlFQTtFQUFpQztBcEJ3aUVqQzs7QW9CdmlFQTtFQUFrQztBcEIyaUVsQzs7QW9CMWlFQTtFQUFvQztBcEI4aUVwQzs7QW9CN2lFQTtFQUFrQztBcEJpakVsQzs7QW9CaGpFQTtFQUFvQztBcEJvakVwQzs7QW9CbmpFQTtFQUF3QztBcEJ1akV4Qzs7QW9CdGpFQTtFQUE4QztBcEIwakU5Qzs7QW9CempFQTtFQUErQztBcEI2akUvQzs7QW9CNWpFQTtFQUE2QztBcEJna0U3Qzs7QW9CL2pFQTtFQUE2QztBcEJta0U3Qzs7QW9CbGtFQTtFQUFvRDtBcEJza0VwRDs7QW9CcmtFQTtFQUE4QztBcEJ5a0U5Qzs7QW9CeGtFQTtFQUFnRDtBcEI0a0VoRDs7QW9CM2tFQTtFQUE4QztBcEIra0U5Qzs7QW9COWtFQTtFQUE4QztBcEJrbEU5Qzs7QW9CamxFQTtFQUE2QztBcEJxbEU3Qzs7QW9CcGxFQTtFQUE4QztBcEJ3bEU5Qzs7QW9CdmxFQTtFQUE4QztBcEIybEU5Qzs7QW9CMWxFQTtFQUE4QztBcEI4bEU5Qzs7QW9CN2xFQTtFQUEwQztBcEJpbUUxQzs7QW9CaG1FQTtFQUEyQztBcEJvbUUzQzs7QW9Cbm1FQTtFQUF5QztBcEJ1bUV6Qzs7QW9CdG1FQTtFQUF5QztBcEIwbUV6Qzs7QW9Cem1FQTtFQUFnRDtBcEI2bUVoRDs7QW9CNW1FQTtFQUEwQztBcEJnbkUxQzs7QW9CL21FQTtFQUE0QztBcEJtbkU1Qzs7QW9CbG5FQTtFQUEwQztBcEJzbkUxQzs7QW9Ccm5FQTtFQUEwQztBcEJ5bkUxQzs7QW9CeG5FQTtFQUF5QztBcEI0bkV6Qzs7QW9CM25FQTtFQUEwQztBcEIrbkUxQzs7QW9COW5FQTtFQUEwQztBcEJrb0UxQzs7QW9Cam9FQTtFQUEwQztBcEJxb0UxQzs7QW9CcG9FQTtFQUFxQztBcEJ3b0VyQzs7QW9Cdm9FQTtFQUF5QztBcEIyb0V6Qzs7QW9CMW9FQTtFQUFnRDtBcEI4b0VoRDs7QW9CN29FQTtFQUE0QztBcEJpcEU1Qzs7QW9CaHBFQTtFQUF5QztBcEJvcEV6Qzs7QW9CbnBFQTtFQUFvQztBcEJ1cEVwQzs7QW9CdHBFQTtFQUEwQztBcEIwcEUxQzs7QW9CenBFQTtFQUFxQztBcEI2cEVyQzs7QW9CNXBFQTtFQUF5QztBcEJncUV6Qzs7QW9CL3BFQTtFQUFnRDtBcEJtcUVoRDs7QW9CbHFFQTtFQUEwQztBcEJzcUUxQzs7QW9CcnFFQTtFQUE2QztBcEJ5cUU3Qzs7QW9CeHFFQTtFQUE2QztBcEI0cUU3Qzs7QW9CM3FFQTtFQUEyQztBcEIrcUUzQzs7QW9COXFFQTtFQUF1QztBcEJrckV2Qzs7QW9CanJFQTtFQUEyQztBcEJxckUzQzs7QW9CcHJFQTtFQUF5QztBcEJ3ckV6Qzs7QW9CdnJFQTtFQUE4QztBcEIyckU5Qzs7QW9CMXJFQTtFQUFtQztBcEI4ckVuQzs7QW9CN3JFQTtFQUEwQztBcEJpc0UxQzs7QW9CaHNFQTtFQUE4QztBcEJvc0U5Qzs7QW9CbnNFQTtFQUFtQztBcEJ1c0VuQzs7QW9CdHNFQTtFQUF3QztBcEIwc0V4Qzs7QW9CenNFQTtFQUFpQztBcEI2c0VqQzs7QW9CNXNFQTtFQUFzQztBcEJndEV0Qzs7QW9CL3NFQTtFQUFpQztBcEJtdEVqQzs7QW9CbHRFQTtFQUEwQztBcEJzdEUxQzs7QW9CcnRFQTtFQUFrQztBcEJ5dEVsQzs7QW9CeHRFQTtFQUFnQztBcEI0dEVoQzs7QW9CM3RFQTtFQUFvQztBcEIrdEVwQzs7QW9COXRFQTtFQUF5QztBcEJrdUV6Qzs7QW9CanVFQTtFQUFtQztBcEJxdUVuQzs7QW9CcHVFQTtFQUE2QztBcEJ3dUU3Qzs7QW9CdnVFQTtFQUFnRDtBcEIydUVoRDs7QW9CMXVFQTtFQUFnRDtBcEI4dUVoRDs7QW9CN3VFQTtFQUFtRDtBcEJpdkVuRDs7QW9CaHZFQTtFQUFtRDtBcEJvdkVuRDs7QW9CbnZFQTtFQUFnRDtBcEJ1dkVoRDs7QW9CdHZFQTtFQUFnRDtBcEIwdkVoRDs7QW9CenZFQTtFQUFvRDtBcEI2dkVwRDs7QW9CNXZFQTtFQUFtRDtBcEJnd0VuRDs7QW9CL3ZFQTtFQUFnRDtBcEJtd0VoRDs7QW9CbHdFQTtFQUFzRDtBcEJzd0V0RDs7QW9CcndFQTtFQUEyRDtBcEJ5d0UzRDs7QW9CeHdFQTtFQUFtRDtBcEI0d0VuRDs7QW9CM3dFQTtFQUFrRDtBcEIrd0VsRDs7QW9COXdFQTtFQUF3QztBcEJreEV4Qzs7QW9CanhFQTtFQUE4QztBcEJxeEU5Qzs7QW9CcHhFQTtFQUE4QztBcEJ3eEU5Qzs7QW9CdnhFQTtFQUFvQztBcEIyeEVwQzs7QW9CMXhFQTtFQUEwQztBcEI4eEUxQzs7QW9CN3hFQTtFQUFzQztBcEJpeUV0Qzs7QW9CaHlFQTtFQUFpQztBcEJveUVqQzs7QW9CbnlFQTtFQUFxQztBcEJ1eUVyQzs7QW9CdHlFQTtFQUFrQztBcEIweUVsQzs7QW9CenlFQTtFQUF1QztBcEI2eUV2Qzs7QW9CNXlFQTtFQUFpQztBcEJnekVqQzs7QW9CL3lFQTtFQUFrQztBcEJtekVsQzs7QW9CbHpFQTtFQUFtQztBcEJzekVuQzs7QW9CcnpFQTtFQUFxQztBcEJ5ekVyQzs7QW9CeHpFQTtFQUFpQztBcEI0ekVqQzs7QW9CM3pFQTtFQUFxQztBcEIrekVyQzs7QW9COXpFQTtFQUFpQztBcEJrMEVqQzs7QW9CajBFQTtFQUFrQztBcEJxMEVsQzs7QW9CcDBFQTtFQUFvQztBcEJ3MEVwQzs7QW9CdjBFQTtFQUFnQztBcEIyMEVoQzs7QW9CMTBFQTtFQUF1QztBcEI4MEV2Qzs7QW9CNzBFQTtFQUFvQztBcEJpMUVwQzs7QW9CaDFFQTtFQUEyQztBcEJvMUUzQzs7QW9CbjFFQTtFQUFtQztBcEJ1MUVuQzs7QW9CdDFFQTtFQUF3QztBcEIwMUV4Qzs7QW9CejFFQTtFQUFxQztBcEI2MUVyQzs7QW9CNTFFQTtFQUFxQztBcEJnMkVyQzs7QW9CLzFFQTtFQUFpQztBcEJtMkVqQzs7QW9CbDJFQTtFQUFrQztBcEJzMkVsQzs7QW9CcjJFQTtFQUFpQztBcEJ5MkVqQzs7QW9CeDJFQTtFQUF5QztBcEI0MkV6Qzs7QW9CMzJFQTtFQUFtQztBcEIrMkVuQzs7QW9COTJFQTtFQUFzQztBcEJrM0V0Qzs7QW9CajNFQTtFQUFxQztBcEJxM0VyQzs7QW9CcDNFQTtFQUFzQztBcEJ3M0V0Qzs7QW9CdjNFQTtFQUFvQztBcEIyM0VwQzs7QW9CMTNFQTtFQUFvQztBcEI4M0VwQzs7QW9CNzNFQTtFQUF3QztBcEJpNEV4Qzs7QW9CaDRFQTtFQUFnQztBcEJvNEVoQzs7QW9CbjRFQTtFQUF1QztBcEJ1NEV2Qzs7QW9CdDRFQTtFQUFxQztBcEIwNEVyQzs7QW9CejRFQTtFQUF5QztBcEI2NEV6Qzs7QW9CNTRFQTtFQUFnQztBcEJnNUVoQzs7QW9CLzRFQTtFQUFzQztBcEJtNUV0Qzs7QW9CbDVFQTtFQUFvQztBcEJzNUVwQzs7QW9CcjVFQTtFQUFxQztBcEJ5NUVyQzs7QW9CeDVFQTtFQUFpQztBcEI0NUVqQzs7QW9CMzVFQTtFQUFxQztBcEIrNUVyQzs7QW9COTVFQTtFQUFxQztBcEJrNkVyQzs7QW9CajZFQTtFQUFxQztBcEJxNkVyQzs7QW9CcDZFQTtFQUFvQztBcEJ3NkVwQzs7QW9CdjZFQTtFQUFvQztBcEIyNkVwQzs7QW9CMTZFQTtFQUFvQztBcEI4NkVwQzs7QW9CNzZFQTtFQUFzQztBcEJpN0V0Qzs7QW9CaDdFQTtFQUFzQztBcEJvN0V0Qzs7QW9CbjdFQTtFQUFxQztBcEJ1N0VyQzs7QW9CdDdFQTtFQUFxQztBcEIwN0VyQzs7QW9CejdFQTtFQUF1QztBcEI2N0V2Qzs7QW9CNTdFQTtFQUFxQztBcEJnOEVyQzs7QW9CLzdFQTtFQUFpQztBcEJtOEVqQzs7QW9CbDhFQTtFQUFvQztBcEJzOEVwQzs7QW9CcjhFQTtFQUEwQztBcEJ5OEUxQzs7QW9CeDhFQTtFQUErQztBcEI0OEUvQzs7QW9CMzhFQTtFQUFvQztBcEIrOEVwQzs7QW9COThFQTtFQUF1QztBcEJrOUV2Qzs7QW9CajlFQTtFQUF1QztBcEJxOUV2Qzs7QW9CcDlFQTtFQUFvQztBcEJ3OUVwQzs7QW9CdjlFQTtFQUFzQztBcEIyOUV0Qzs7QW9CMTlFQTtFQUFvQztBcEI4OUVwQzs7QW9CNzlFQTtFQUFtQztBcEJpK0VuQzs7QW9CaCtFQTtFQUFrQztBcEJvK0VsQzs7QW9CbitFQTtFQUFnQztBcEJ1K0VoQzs7QW9CdCtFQTtFQUF5QztBcEIwK0V6Qzs7QW9CeitFQTtFQUFtQztBcEI2K0VuQzs7QW9CNStFQTtFQUFtQztBcEJnL0VuQzs7QW9CLytFQTtFQUFnQztBcEJtL0VoQzs7QW9CbC9FQTtFQUF3QztBcEJzL0V4Qzs7QW9Cci9FQTtFQUF3QztBcEJ5L0V4Qzs7QW9CeC9FQTtFQUFrQztBcEI0L0VsQzs7QW9CMy9FQTtFQUF3QztBcEIrL0V4Qzs7QW9COS9FQTtFQUEwQztBcEJrZ0YxQzs7QW9CamdGQTtFQUE4QztBcEJxZ0Y5Qzs7QW9CcGdGQTtFQUFnRDtBcEJ3Z0ZoRDs7QW9CdmdGQTtFQUFtQztBcEIyZ0ZuQzs7QW9CMWdGQTtFQUF3QztBcEI4Z0Z4Qzs7QW9CN2dGQTtFQUFzQztBcEJpaEZ0Qzs7QW9CaGhGQTtFQUF1QztBcEJvaEZ2Qzs7QW9CbmhGQTtFQUFpQztBcEJ1aEZqQzs7QW9CdGhGQTtFQUFxQztBcEIwaEZyQzs7QW9CemhGQTtFQUEwQztBcEI2aEYxQzs7QW9CNWhGQTtFQUE2QztBcEJnaUY3Qzs7QW9CL2hGQTtFQUFtQztBcEJtaUZuQzs7QW9CbGlGQTtFQUF3QztBcEJzaUZ4Qzs7QW9CcmlGQTtFQUF5QztBcEJ5aUZ6Qzs7QW9CeGlGQTtFQUF3QztBcEI0aUZ4Qzs7QW9CM2lGQTtFQUFvQztBcEIraUZwQzs7QW9COWlGQTtFQUFxQztBcEJrakZyQzs7QW9CampGQTtFQUE0QztBcEJxakY1Qzs7QW9CcGpGQTtFQUFrQztBcEJ3akZsQzs7QW9CdmpGQTtFQUFzQztBcEIyakZ0Qzs7QW9CMWpGQTtFQUFvQztBcEI4akZwQzs7QW9CN2pGQTtFQUFpQztBcEJpa0ZqQzs7QW9CaGtGQTtFQUEwQztBcEJva0YxQzs7QW9CbmtGQTtFQUFzQztBcEJ1a0Z0Qzs7QW9CdGtGQTtFQUEyQztBcEIwa0YzQzs7QW9CemtGQTtFQUFtQztBcEI2a0ZuQzs7QW9CNWtGQTtFQUFrQztBcEJnbEZsQzs7QW9CL2tGQTtFQUFzQztBcEJtbEZ0Qzs7QW9CbGxGQTtFQUFpQztBcEJzbEZqQzs7QW9CcmxGQTtFQUFxQztBcEJ5bEZyQzs7QW9CeGxGQTtFQUFxQztBcEI0bEZyQzs7QW9CM2xGQTtFQUEwQztBcEIrbEYxQzs7QW9COWxGQTtFQUFvQztBcEJrbUZwQzs7QW9Cam1GQTtFQUFtQztBcEJxbUZuQzs7QW9CcG1GQTtFQUFnQztBcEJ3bUZoQzs7QW9Cdm1GQTtFQUFzQztBcEIybUZ0Qzs7QW9CMW1GQTtFQUF1QztBcEI4bUZ2Qzs7QW9CN21GQTtFQUFpQztBcEJpbkZqQzs7QW9CaG5GQTtFQUFvQztBcEJvbkZwQzs7QW9Cbm5GQTtFQUF3QztBcEJ1bkZ4Qzs7QW9CdG5GQTtFQUFpQztBcEIwbkZqQzs7QW9Cem5GQTtFQUF3QztBcEI2bkZ4Qzs7QW9CNW5GQTtFQUFpQztBcEJnb0ZqQzs7QW9CL25GQTtFQUFnQztBcEJtb0ZoQzs7QW9CbG9GQTtFQUFzQztBcEJzb0Z0Qzs7QW9Ccm9GQTtFQUFrQztBcEJ5b0ZsQzs7QW9CeG9GQTtFQUFzQztBcEI0b0Z0Qzs7QW9CM29GQTtFQUFxQztBcEIrb0ZyQzs7QW9COW9GQTtFQUF1QztBcEJrcEZ2Qzs7QW9CanBGQTtFQUEyQztBcEJxcEYzQzs7QW9CcHBGQTtFQUF1QztBcEJ3cEZ2Qzs7QW9CdnBGQTtFQUEyQztBcEIycEYzQzs7QW9CMXBGQTtFQUFpQztBcEI4cEZqQzs7QW9CN3BGQTtFQUFrQztBcEJpcUZsQzs7QW9CaHFGQTtFQUFtQztBcEJvcUZuQzs7QW9CbnFGQTtFQUFzQztBcEJ1cUZ0Qzs7QW9CdHFGQTtFQUEyQztBcEIwcUYzQzs7QW9CenFGQTtFQUFxQztBcEI2cUZyQzs7QW9CNXFGQTtFQUEwQztBcEJnckYxQzs7QW9CL3FGQTtFQUFpRDtBcEJtckZqRDs7QW9CbHJGQTtFQUErQztBcEJzckYvQzs7QW9CcnJGQTtFQUE0QztBcEJ5ckY1Qzs7QW9CeHJGQTtFQUFtQztBcEI0ckZuQzs7QW9CM3JGQTtFQUFtQztBcEIrckZuQzs7QW9COXJGQTtFQUFtQztBcEJrc0ZuQzs7QW9CanNGQTtFQUFtQztBcEJxc0ZuQzs7QW9CcHNGQTtFQUFxQztBcEJ3c0ZyQzs7QW9CdnNGQTtFQUFxQztBcEIyc0ZyQzs7QW9CMXNGQTtFQUFpQztBcEI4c0ZqQzs7QW9CN3NGQTtFQUFzQztBcEJpdEZ0Qzs7QW9CaHRGQTtFQUFxQztBcEJvdEZyQzs7QW9CbnRGQTtFQUFxQztBcEJ1dEZyQzs7QW9CdHRGQTtFQUF5QztBcEIwdEZ6Qzs7QW9CenRGQTtFQUF3QztBcEI2dEZ4Qzs7QW9CNXRGQTtFQUErQztBcEJndUYvQzs7QW9CL3RGQTtFQUErQztBcEJtdUYvQzs7QW9CbHVGQTtFQUFpRDtBcEJzdUZqRDs7QW9CcnVGQTtFQUFtQztBcEJ5dUZuQzs7QW9CeHVGQTtFQUF1QztBcEI0dUZ2Qzs7QW9CM3VGQTtFQUEwQztBcEIrdUYxQzs7QW9COXVGQTtFQUE4QztBcEJrdkY5Qzs7QW9CanZGQTtFQUF3QztBcEJxdkZ4Qzs7QW9CcHZGQTtFQUF5QztBcEJ3dkZ6Qzs7QW9CdnZGQTtFQUEwQztBcEIydkYxQzs7QW9CMXZGQTtFQUE4QztBcEI4dkY5Qzs7QW9CN3ZGQTtFQUFpRDtBcEJpd0ZqRDs7QW9CaHdGQTtFQUFxRDtBcEJvd0ZyRDs7QW9CbndGQTtFQUFnQztBcEJ1d0ZoQzs7QW9CdHdGQTtFQUF3QztBcEIwd0Z4Qzs7QW9CendGQTtFQUFxQztBcEI2d0ZyQzs7QW9CNXdGQTtFQUFzQztBcEJneEZ0Qzs7QW9CL3dGQTtFQUFxQztBcEJteEZyQzs7QW9CbHhGQTtFQUF1QztBcEJzeEZ2Qzs7QW9CcnhGQTtFQUErQztBcEJ5eEYvQzs7QW9CeHhGQTtFQUE0QztBcEI0eEY1Qzs7QW9CM3hGQTtFQUFnQztBcEIreEZoQzs7QW9COXhGQTtFQUFzQztBcEJreUZ0Qzs7QW9CanlGQTtFQUFpRDtBcEJxeUZqRDs7QW9CcHlGQTtFQUFpQztBcEJ3eUZqQzs7QW9CdnlGQTtFQUEwQztBcEIyeUYxQzs7QW9CMXlGQTtFQUF5QztBcEI4eUZ6Qzs7QW9CN3lGQTtFQUFtQztBcEJpekZuQzs7QW9CaHpGQTtFQUF3QztBcEJvekZ4Qzs7QW9CbnpGQTtFQUFnQztBcEJ1ekZoQzs7QW9CdHpGQTtFQUFvQztBcEIwekZwQzs7QW9CenpGQTtFQUF3QztBcEI2ekZ4Qzs7QW9CNXpGQTtFQUFrQztBcEJnMEZsQzs7QW9CL3pGQTtFQUFtQztBcEJtMEZuQzs7QW9CbDBGQTtFQUFtQztBcEJzMEZuQzs7QW9CcjBGQTtFQUF5QztBcEJ5MEZ6Qzs7QW9CeDBGQTtFQUF3QztBcEI0MEZ4Qzs7QW9CMzBGQTtFQUFrQztBcEIrMEZsQzs7QW9COTBGQTtFQUFpQztBcEJrMUZqQzs7QW9CajFGQTtFQUFxQztBcEJxMUZyQzs7QW9CcDFGQTtFQUF5QztBcEJ3MUZ6Qzs7QW9CdjFGQTtFQUF1QztBcEIyMUZ2Qzs7QW9CMTFGQTtFQUE2QztBcEI4MUY3Qzs7QW9CNzFGQTtFQUE0QztBcEJpMkY1Qzs7QW9CaDJGQTtFQUEyQztBcEJvMkYzQzs7QW9CbjJGQTtFQUF1QztBcEJ1MkZ2Qzs7QW9CdDJGQTtFQUFzQztBcEIwMkZ0Qzs7QW9CejJGQTtFQUEwQztBcEI2MkYxQzs7QW9CNTJGQTtFQUFxQztBcEJnM0ZyQzs7QW9CLzJGQTtFQUEwQztBcEJtM0YxQzs7QW9CbDNGQTtFQUFzQztBcEJzM0Z0Qzs7QW9CcjNGQTtFQUF1QztBcEJ5M0Z2Qzs7QW9CeDNGQTtFQUE2QztBcEI0M0Y3Qzs7QW9CMzNGQTtFQUF3QztBcEIrM0Z4Qzs7QW9COTNGQTtFQUF1QztBcEJrNEZ2Qzs7QW9CajRGQTtFQUF3QztBcEJxNEZ4Qzs7QW9CcDRGQTtFQUF5QztBcEJ3NEZ6Qzs7QW9CdjRGQTtFQUFnRDtBcEIyNEZoRDs7QW9CMTRGQTtFQUF5QztBcEI4NEZ6Qzs7QW9CNzRGQTtFQUE2QztBcEJpNUY3Qzs7QW9CaDVGQTtFQUF1QztBcEJvNUZ2Qzs7QW9CbjVGQTtFQUF1QztBcEJ1NUZ2Qzs7QW9CdDVGQTtFQUFxQztBcEIwNUZyQzs7QW9CejVGQTtFQUFzQztBcEI2NUZ0Qzs7QW9CNTVGQTtFQUE0QztBcEJnNkY1Qzs7QW9CLzVGQTtFQUE4QztBcEJtNkY5Qzs7QW9CbDZGQTtFQUF3QztBcEJzNkZ4Qzs7QW9CcjZGQTtFQUEyQztBcEJ5NkYzQzs7QW9CeDZGQTtFQUE2QztBcEI0NkY3Qzs7QW9CMzZGQTtFQUF1QztBcEIrNkZ2Qzs7QW9COTZGQTtFQUF3QztBcEJrN0Z4Qzs7QW9CajdGQTtFQUFzQztBcEJxN0Z0Qzs7QW9CcDdGQTtFQUF1QztBcEJ3N0Z2Qzs7QW9CdjdGQTtFQUFzQztBcEIyN0Z0Qzs7QW9CMTdGQTtFQUEwQztBcEI4N0YxQzs7QW9CNzdGQTtFQUFpQztBcEJpOEZqQzs7QW9CaDhGQTtFQUFzQztBcEJvOEZ0Qzs7QW9CbjhGQTtFQUFpQztBcEJ1OEZqQzs7QW9CdDhGQTtFQUFxQztBcEIwOEZyQzs7QW9CejhGQTtFQUEwQztBcEI2OEYxQzs7QW9CNThGQTtFQUFtQztBcEJnOUZuQzs7QW9CLzhGQTtFQUF3QztBcEJtOUZ4Qzs7QW9CbDlGQTtFQUFpQztBcEJzOUZqQzs7QW9CcjlGQTtFQUFxQztBcEJ5OUZyQzs7QW9CeDlGQTtFQUE4QztBcEI0OUY5Qzs7QW9CMzlGQTtFQUF1QztBcEIrOUZ2Qzs7QW9COTlGQTtFQUFvQztBcEJrK0ZwQzs7QW9CaitGQTtFQUE0QztBcEJxK0Y1Qzs7QW9CcCtGQTtFQUFzQztBcEJ3K0Z0Qzs7QW9CditGQTtFQUFzQztBcEIyK0Z0Qzs7QW9CMStGQTtFQUF3QztBcEI4K0Z4Qzs7QW9CNytGQTtFQUE0QztBcEJpL0Y1Qzs7QW9CaC9GQTtFQUF1QztBcEJvL0Z2Qzs7QW9Cbi9GQTtFQUFpQztBcEJ1L0ZqQzs7QW9CdC9GQTtFQUF3QztBcEIwL0Z4Qzs7QW9Cei9GQTtFQUF3QztBcEI2L0Z4Qzs7QW9CNS9GQTtFQUFpQztBcEJnZ0dqQzs7QW9CLy9GQTtFQUFxQztBcEJtZ0dyQzs7QW9CbGdHQTtFQUEyQztBcEJzZ0czQzs7QW9CcmdHQTtFQUFxQztBcEJ5Z0dyQzs7QW9CeGdHQTtFQUFrQztBcEI0Z0dsQzs7QW9CM2dHQTtFQUF1QztBcEIrZ0d2Qzs7QW9COWdHQTtFQUFrQztBcEJraEdsQzs7QW9CamhHQTtFQUF5QztBcEJxaEd6Qzs7QW9CcGhHQTtFQUF5QztBcEJ3aEd6Qzs7QW9CdmhHQTtFQUFtQztBcEIyaEduQzs7QW9CMWhHQTtFQUFzQztBcEI4aEd0Qzs7QW9CN2hHQTtFQUFtQztBcEJpaUduQzs7QW9CaGlHQTtFQUE0QztBcEJvaUc1Qzs7QW9CbmlHQTtFQUF5QztBcEJ1aUd6Qzs7QW9CdGlHQTtFQUFvQztBcEIwaUdwQzs7QW9CemlHQTtFQUFrQztBcEI2aUdsQzs7QW9CNWlHQTtFQUEyQztBcEJnakczQzs7QW9CL2lHQTtFQUFnQztBcEJtakdoQzs7QW9CbGpHQTtFQUFnQztBcEJzakdoQzs7QW9CcmpHQTtFQUFtQztBcEJ5akduQzs7QW9CeGpHQTtFQUE0QztBcEI0akc1Qzs7QW9CM2pHQTtFQUF5QztBcEIrakd6Qzs7QW9COWpHQTtFQUF3QztBcEJra0d4Qzs7QW9CamtHQTtFQUF3QztBcEJxa0d4Qzs7QW9CcGtHQTtFQUF5QztBcEJ3a0d6Qzs7QW9CdmtHQTtFQUF3QztBcEIya0d4Qzs7QW9CMWtHQTtFQUEwQztBcEI4a0cxQzs7QW9CN2tHQTtFQUFvQztBcEJpbEdwQzs7QW9CaGxHQTtFQUFpQztBcEJvbEdqQzs7QW9CbmxHQTtFQUF5QztBcEJ1bEd6Qzs7QW9CdGxHQTtFQUE2QztBcEIwbEc3Qzs7QW9CemxHQTtFQUE4QztBcEI2bEc5Qzs7QW9CNWxHQTtFQUFtRDtBcEJnbUduRDs7QW9CL2xHQTtFQUFzQztBcEJtbUd0Qzs7QW9CbG1HQTtFQUFzQztBcEJzbUd0Qzs7QW9Ccm1HQTtFQUF5QztBcEJ5bUd6Qzs7QW9CeG1HQTtFQUEwQztBcEI0bUcxQzs7QW9CM21HQTtFQUE0QztBcEIrbUc1Qzs7QW9COW1HQTtFQUFxQztBcEJrbkdyQzs7QW9Cam5HQTtFQUF5QztBcEJxbkd6Qzs7QW9CcG5HQTtFQUE2QztBcEJ3bkc3Qzs7QW9Cdm5HQTtFQUFxQztBcEIybkdyQzs7QW9CMW5HQTtFQUFvQztBcEI4bkdwQzs7QW9CN25HQTtFQUF1QztBcEJpb0d2Qzs7QW9CaG9HQTtFQUFvQztBcEJvb0dwQzs7QW9Cbm9HQTtFQUEyQztBcEJ1b0czQzs7QW9CdG9HQTtFQUFvQztBcEIwb0dwQzs7QW9Cem9HQTtFQUF5QztBcEI2b0d6Qzs7QW9CNW9HQTtFQUFpQztBcEJncEdqQzs7QW9CL29HQTtFQUF3QztBcEJtcEd4Qzs7QW9CbHBHQTtFQUFrQztBcEJzcEdsQzs7QW9CcnBHQTtFQUF1QztBcEJ5cEd2Qzs7QW9CeHBHQTtFQUFvQztBcEI0cEdwQzs7QW9CM3BHQTtFQUFxQztBcEIrcEdyQzs7QW9COXBHQTtFQUEwQztBcEJrcUcxQzs7QW9CanFHQTtFQUFtQztBcEJxcUduQzs7QW9CcHFHQTtFQUE4QztBcEJ3cUc5Qzs7QW9CdnFHQTtFQUE0QztBcEIycUc1Qzs7QW9CMXFHQTtFQUFtQztBcEI4cUduQzs7QW9CN3FHQTtFQUF1QztBcEJpckd2Qzs7QW9CaHJHQTtFQUEyQztBcEJvckczQzs7QW9CbnJHQTtFQUFrRDtBcEJ1ckdsRDs7QW9CdHJHQTtFQUFvQztBcEIwckdwQzs7QW9CenJHQTtFQUF3QztBcEI2ckd4Qzs7QW9CNXJHQTtFQUFtQztBcEJnc0duQzs7QW9CL3JHQTtFQUF1QztBcEJtc0d2Qzs7QW9CbHNHQTtFQUF3QztBcEJzc0d4Qzs7QW9CcnNHQTtFQUFxQztBcEJ5c0dyQzs7QW9CeHNHQTtFQUEyQztBcEI0c0czQzs7QW9CM3NHQTtFQUFrQztBcEIrc0dsQzs7QW9COXNHQTtFQUFnQztBcEJrdEdoQzs7QW9CanRHQTtFQUF1QztBcEJxdEd2Qzs7QW9CcHRHQTtFQUF1QztBcEJ3dEd2Qzs7QW9CdnRHQTtFQUErQjtBcEIydEcvQjs7QW9CMXRHQTtFQUFzQztBcEI4dEd0Qzs7QW9CN3RHQTtFQUFrQztBcEJpdUdsQzs7QW9CaHVHQTtFQUFpQztBcEJvdUdqQzs7QW9CbnVHQTtFQUFzQztBcEJ1dUd0Qzs7QW9CdHVHQTtFQUFrQztBcEIwdUdsQzs7QW9CenVHQTtFQUE0QztBcEI2dUc1Qzs7QW9CNXVHQTtFQUFnQztBcEJndkdoQzs7QW9CL3VHQTtFQUFvQztBcEJtdkdwQzs7QW9CbHZHQTtFQUF1QztBcEJzdkd2Qzs7QW9CcnZHQTtFQUFtQztBcEJ5dkduQzs7QW9CeHZHQTtFQUF1QztBcEI0dkd2Qzs7QW9CM3ZHQTtFQUEwQztBcEIrdkcxQzs7QW9COXZHQTtFQUFzQztBcEJrd0d0Qzs7QW9CandHQTtFQUFtQztBcEJxd0duQzs7QW9CcHdHQTtFQUFtQztBcEJ3d0duQzs7QW9CdndHQTtFQUFrQztBcEIyd0dsQzs7QW9CMXdHQTtFQUE0QztBcEI4d0c1Qzs7QW9CN3dHQTtFQUF5QztBcEJpeEd6Qzs7QW9CaHhHQTtFQUF5QztBcEJveEd6Qzs7QW9CbnhHQTtFQUEwQztBcEJ1eEcxQzs7QW9CdHhHQTtFQUE4QztBcEIweEc5Qzs7QW9CenhHQTtFQUEwQztBcEI2eEcxQzs7QW9CNXhHQTtFQUFnRDtBcEJneUdoRDs7QW9CL3hHQTtFQUFvQztBcEJteUdwQzs7QW9CbHlHQTtFQUF3QztBcEJzeUd4Qzs7QW9CcnlHQTtFQUFrQztBcEJ5eUdsQzs7QW9CeHlHQTtFQUFvQztBcEI0eUdwQzs7QW9CM3lHQTtFQUFrQztBcEIreUdsQzs7QW9COXlHQTtFQUF5QztBcEJrekd6Qzs7QW9CanpHQTtFQUEyQztBcEJxekczQzs7QW9CcHpHQTtFQUF1QztBcEJ3ekd2Qzs7QW9CdnpHQTtFQUF5QztBcEIyekd6Qzs7QW9CMXpHQTtFQUF1QztBcEI4ekd2Qzs7QW9CN3pHQTtFQUF3QztBcEJpMEd4Qzs7QW9CaDBHQTtFQUFtQztBcEJvMEduQzs7QW9CbjBHQTtFQUFzQztBcEJ1MEd0Qzs7QW9CdDBHQTtFQUFzQztBcEIwMEd0Qzs7QW9CejBHQTtFQUFzQztBcEI2MEd0Qzs7QW9CNTBHQTtFQUF3QztBcEJnMUd4Qzs7QW9CLzBHQTtFQUFtQztBcEJtMUduQzs7QW9CbDFHQTtFQUF5QztBcEJzMUd6Qzs7QW9CcjFHQTtFQUF1QztBcEJ5MUd2Qzs7QW9CeDFHQTtFQUF3QztBcEI0MUd4Qzs7QW9CMzFHQTtFQUF3QztBcEIrMUd4Qzs7QW9COTFHQTtFQUEwQztBcEJrMkcxQzs7QW9CajJHQTtFQUErQztBcEJxMkcvQzs7QW9CcDJHQTtFQUEwQztBcEJ3MkcxQzs7QW9CdjJHQTtFQUFvQztBcEIyMkdwQzs7QW9CMTJHQTtFQUEyQztBcEI4MkczQzs7QW9CNzJHQTtFQUF1QztBcEJpM0d2Qzs7QW9CaDNHQTtFQUFxQztBcEJvM0dyQzs7QW9CbjNHQTtFQUFpQztBcEJ1M0dqQzs7QW9CdDNHQTtFQUF5QztBcEIwM0d6Qzs7QW9CejNHQTtFQUErQztBcEI2M0cvQzs7QW9CNTNHQTtFQUFvQztBcEJnNEdwQzs7QW9CLzNHQTtFQUFpQztBcEJtNEdqQzs7QW9CbDRHQTtFQUFxQztBcEJzNEdyQzs7QW9CcjRHQTtFQUFzQztBcEJ5NEd0Qzs7QW9CeDRHQTtFQUE0QztBcEI0NEc1Qzs7QW9CMzRHQTtFQUF3QztBcEIrNEd4Qzs7QW9COTRHQTtFQUF3QztBcEJrNUd4Qzs7QW9CajVHQTtFQUE4QztBcEJxNUc5Qzs7QW9CcDVHQTtFQUF1QztBcEJ3NUd2Qzs7QW9CdjVHQTtFQUF1QztBcEIyNUd2Qzs7QW9CMTVHQTtFQUF3QztBcEI4NUd4Qzs7QW9CNzVHQTtFQUErQztBcEJpNkcvQzs7QW9CaDZHQTtFQUE2QztBcEJvNkc3Qzs7QW9CbjZHQTtFQUFzQztBcEJ1Nkd0Qzs7QW9CdDZHQTtFQUE0QztBcEIwNkc1Qzs7QW9CejZHQTtFQUF1QztBcEI2Nkd2Qzs7QW9CNTZHQTtFQUFnRDtBcEJnN0doRDs7QW9CLzZHQTtFQUEwQztBcEJtN0cxQzs7QW9CbDdHQTtFQUFxQztBcEJzN0dyQzs7QW9CcjdHQTtFQUFrQztBcEJ5N0dsQzs7QW9CeDdHQTtFQUFvQztBcEI0N0dwQzs7QW9CMzdHQTtFQUFtQztBcEIrN0duQzs7QW9COTdHQTtFQUE0QztBcEJrOEc1Qzs7QW9CajhHQTtFQUFvQztBcEJxOEdwQzs7QW9CcDhHQTtFQUFpQztBcEJ3OEdqQzs7QW9CdjhHQTtFQUFxQztBcEIyOEdyQzs7QW9CMThHQTtFQUErQjtBcEI4OEcvQjs7QW9CNzhHQTtFQUErQjtBcEJpOUcvQjs7QW9CaDlHQTtFQUErQjtBcEJvOUcvQjs7QW9CbjlHQTtFQUErQjtBcEJ1OUcvQjs7QW9CdDlHQTtFQUF3QztBcEIwOUd4Qzs7QW9CejlHQTtFQUErQztBcEI2OUcvQzs7QW9CNTlHQTtFQUF1QztBcEJnK0d2Qzs7QW9CLzlHQTtFQUFzQztBcEJtK0d0Qzs7QW9CbCtHQTtFQUFtQztBcEJzK0duQzs7QW9CcitHQTtFQUF1QztBcEJ5K0d2Qzs7QW9CeCtHQTtFQUFrQztBcEI0K0dsQzs7QW9CMytHQTtFQUF1QztBcEIrK0d2Qzs7QW9COStHQTtFQUF5QztBcEJrL0d6Qzs7QW9Cai9HQTtFQUE2QztBcEJxL0c3Qzs7QW9CcC9HQTtFQUErQztBcEJ3L0cvQzs7QW9Cdi9HQTtFQUErQztBcEIyL0cvQzs7QW9CMS9HQTtFQUFpRDtBcEI4L0dqRDs7QW9CNy9HQTtFQUFrRDtBcEJpZ0hsRDs7QW9CaGdIQTtFQUE2QztBcEJvZ0g3Qzs7QW9CbmdIQTtFQUErQztBcEJ1Z0gvQzs7QW9CdGdIQTtFQUF3QztBcEIwZ0h4Qzs7QW9CemdIQTtFQUErQztBcEI2Z0gvQzs7QW9CNWdIQTtFQUF1QztBcEJnaEh2Qzs7QW9CL2dIQTtFQUF1QztBcEJtaEh2Qzs7QW9CbGhIQTtFQUE0QztBcEJzaEg1Qzs7QW9CcmhIQTtFQUE0QztBcEJ5aEg1Qzs7QW9CeGhIQTtFQUE2QztBcEI0aEg3Qzs7QW9CM2hIQTtFQUEwQztBcEIraEgxQzs7QW9COWhIQTtFQUF5QztBcEJraUh6Qzs7QW9CamlIQTtFQUEyQztBcEJxaUgzQzs7QW9CcGlIQTtFQUFzQztBcEJ3aUh0Qzs7QW9CdmlIQTtFQUEwQztBcEIyaUgxQzs7QW9CMWlIQTtFQUEwQztBcEI4aUgxQzs7QW9CN2lIQTtFQUF1QztBcEJpakh2Qzs7QW9CaGpIQTtFQUFrQztBcEJvakhsQzs7QW9CbmpIQTtFQUF3QztBcEJ1akh4Qzs7QW9CdGpIQTtFQUEwQztBcEIwakgxQzs7QW9CempIQTtFQUFzQztBcEI2akh0Qzs7QW9CNWpIQTtFQUF1QztBcEJna0h2Qzs7QW9CL2pIQTtFQUFzQztBcEJta0h0Qzs7QW9CbGtIQTtFQUEwQztBcEJza0gxQzs7QW9CcmtIQTtFQUFnRDtBcEJ5a0hoRDs7QW9CeGtIQTtFQUE0QztBcEI0a0g1Qzs7QW9CM2tIQTtFQUFxQztBcEIra0hyQzs7QW9COWtIQTtFQUFxQztBcEJrbEhyQzs7QW9CamxIQTtFQUFvQztBcEJxbEhwQzs7QW9CcGxIQTtFQUFxQztBcEJ3bEhyQzs7QW9CdmxIQTtFQUF1QztBcEIybEh2Qzs7QW9CMWxIQTtFQUE0QztBcEI4bEg1Qzs7QW9CN2xIQTtFQUFzQztBcEJpbUh0Qzs7QW9CaG1IQTtFQUF1QztBcEJvbUh2Qzs7QW9Cbm1IQTtFQUFzQztBcEJ1bUh0Qzs7QW9CdG1IQTtFQUF1QztBcEIwbUh2Qzs7QW9Cem1IQTtFQUFnQztBcEI2bUhoQzs7QW9CNW1IQTtFQUFzQztBcEJnbkh0Qzs7QW9CL21IQTtFQUE0QztBcEJtbkg1Qzs7QW9CbG5IQTtFQUE0QztBcEJzbkg1Qzs7QW9Ccm5IQTtFQUFrRDtBcEJ5bkhsRDs7QW9CeG5IQTtFQUFpRDtBcEI0bkhqRDs7QW9CM25IQTtFQUEyQztBcEIrbkgzQzs7QW9COW5IQTtFQUE4QztBcEJrb0g5Qzs7QW9Cam9IQTtFQUE0QztBcEJxb0g1Qzs7QW9CcG9IQTtFQUFvQztBcEJ3b0hwQzs7QW9Cdm9IQTtFQUFvQztBcEIyb0hwQzs7QW9CMW9IQTtFQUF1QztBcEI4b0h2Qzs7QW9CN29IQTtFQUEyQztBcEJpcEgzQzs7QW9CaHBIQTtFQUFvQztBcEJvcEhwQzs7QW9CbnBIQTtFQUFrQztBcEJ1cEhsQzs7QW9CdHBIQTtFQUF5QztBcEIwcEh6Qzs7QW9CenBIQTtFQUF5QztBcEI2cEh6Qzs7QW9CNXBIQTtFQUF1QztBcEJncUh2Qzs7QW9CL3BIQTtFQUF5QztBcEJtcUh6Qzs7QW9CbHFIQTtFQUFzQztBcEJzcUh0Qzs7QW9CcnFIQTtFQUFpQztBcEJ5cUhqQzs7QW9CeHFIQTtFQUF1QztBcEI0cUh2Qzs7QW9CM3FIQTtFQUEwQztBcEIrcUgxQzs7QW9COXFIQTtFQUFvQztBcEJrckhwQzs7QW9CanJIQTtFQUF3QztBcEJxckh4Qzs7QW9CcHJIQTtFQUFtQztBcEJ3ckhuQzs7QW9CdnJIQTtFQUFrQztBcEIyckhsQzs7QW9CMXJIQTtFQUFpQztBcEI4ckhqQzs7QW9CN3JIQTtFQUEwQztBcEJpc0gxQzs7QW9CaHNIQTtFQUFvQztBcEJvc0hwQzs7QW9CbnNIQTtFQUFpQztBcEJ1c0hqQzs7QW9CdHNIQTtFQUF3QztBcEIwc0h4Qzs7QW9CenNIQTtFQUF3QztBcEI2c0h4Qzs7QW9CNXNIQTtFQUEwQztBcEJndEgxQzs7QW9CL3NIQTtFQUF3QztBcEJtdEh4Qzs7QW9CbHRIQTtFQUFpQztBcEJzdEhqQzs7QW9CcnRIQTtFQUFxQztBcEJ5dEhyQzs7QW9CeHRIQTtFQUF1QztBcEI0dEh2Qzs7QW9CM3RIQTtFQUFvQztBcEIrdEhwQzs7QW9COXRIQTtFQUF3QztBcEJrdUh4Qzs7QW9CanVIQTtFQUF1QztBcEJxdUh2Qzs7QW9CcHVIQTtFQUFrQztBcEJ3dUhsQzs7QW9CdnVIQTtFQUE0QztBcEIydUg1Qzs7QW9CMXVIQTtFQUFxQztBcEI4dUhyQzs7QW9CN3VIQTtFQUFrQztBcEJpdkhsQzs7QW9CaHZIQTtFQUF1QztBcEJvdkh2Qzs7QW9CbnZIQTtFQUF5QztBcEJ1dkh6Qzs7QW9CdHZIQTtFQUFxQztBcEIwdkhyQzs7QW9CenZIQTtFQUF5QztBcEI2dkh6Qzs7QW9CNXZIQTtFQUE0QztBcEJnd0g1Qzs7QW9CL3ZIQTtFQUEwQztBcEJtd0gxQzs7QW9CbHdIQTtFQUFzQztBcEJzd0h0Qzs7QW9CcndIQTtFQUFvQztBcEJ5d0hwQzs7QW9CeHdIQTtFQUFtQztBcEI0d0huQzs7QW9CM3dIQTtFQUFrQztBcEIrd0hsQzs7QW9COXdIQTtFQUFtQztBcEJreEhuQzs7QW9CanhIQTtFQUFzQztBcEJxeEh0Qzs7QW9CcHhIQTtFQUEwQztBcEJ3eEgxQzs7QW9CdnhIQTtFQUEyQztBcEIyeEgzQzs7QW9CMXhIQTtFQUE0QztBcEI4eEg1Qzs7QW9CN3hIQTtFQUFrQztBcEJpeUhsQzs7QW9CaHlIQTtFQUF5QztBcEJveUh6Qzs7QW9CbnlIQTtFQUFzQztBcEJ1eUh0Qzs7QW9CdHlIQTtFQUF3QztBcEIweUh4Qzs7QW9CenlIQTtFQUF3QztBcEI2eUh4Qzs7QW9CNXlIQTtFQUF3QztBcEJnekh4Qzs7QW9CL3lIQTtFQUF5QztBcEJtekh6Qzs7QW9CbHpIQTtFQUF5QztBcEJzekh6Qzs7QW9CcnpIQTtFQUF1QztBcEJ5ekh2Qzs7QW9CeHpIQTtFQUFrQztBcEI0ekhsQzs7QW9CM3pIQTtFQUFvQztBcEIrekhwQzs7QW9COXpIQTtFQUFrQztBcEJrMEhsQzs7QW9CajBIQTtFQUFvQztBcEJxMEhwQzs7QW9CcDBIQTtFQUFxQztBcEJ3MEhyQzs7QW9CdjBIQTtFQUFzQztBcEIyMEh0Qzs7QW9CMTBIQTtFQUFxQztBcEI4MEhyQzs7QW9CNzBIQTtFQUFzQztBcEJpMUh0Qzs7QW9CaDFIQTtFQUFzQztBcEJvMUh0Qzs7QW9CbjFIQTtFQUFvQztBcEJ1MUhwQzs7QW9CdDFIQTtFQUFrQztBcEIwMUhsQzs7QW9CejFIQTtFQUFzQztBcEI2MUh0Qzs7QW9CNTFIQTtFQUFxQztBcEJnMkhyQzs7QW9CLzFIQTtFQUFvQztBcEJtMkhwQzs7QW9CbDJIQTtFQUF3QztBcEJzMkh4Qzs7QW9CcjJIQTtFQUFrQztBcEJ5MkhsQzs7QW9CeDJIQTtFQUFrQztBcEI0MkhsQzs7QW9CMzJIQTtFQUFrQztBcEIrMkhsQzs7QW9COTJIQTtFQUEyQztBcEJrM0gzQzs7QW9CajNIQTtFQUFtQztBcEJxM0huQzs7QW9CcDNIQTtFQUFpQztBcEJ3M0hqQzs7QW9CdjNIQTtFQUFrQztBcEIyM0hsQzs7QW9CMTNIQTtFQUFxQztBcEI4M0hyQzs7QW9CNzNIQTtFQUFzQztBcEJpNEh0Qzs7QW9CaDRIQTtFQUFtQztBcEJvNEhuQzs7QW9CbjRIQTtFQUFxQztBcEJ1NEhyQzs7QW9CdDRIQTtFQUF5QztBcEIwNEh6Qzs7QW9CejRIQTtFQUFxQztBcEI2NEhyQzs7QW9CNTRIQTtFQUFpQztBcEJnNUhqQzs7QW9CLzRIQTtFQUF3QztBcEJtNUh4Qzs7QW9CbDVIQTtFQUF3QztBcEJzNUh4Qzs7QW9CcjVIQTtFQUFvQztBcEJ5NUhwQzs7QW9CeDVIQTtFQUFxQztBcEI0NUhyQzs7QW9CMzVIQTtFQUFzQztBcEIrNUh0Qzs7QW9COTVIQTtFQUE2QztBcEJrNkg3Qzs7QW9CajZIQTtFQUFxQztBcEJxNkhyQzs7QW9CcDZIQTtFQUFxQztBcEJ3NkhyQzs7QW9CdjZIQTtFQUFxQztBcEIyNkhyQzs7QW9CMTZIQTtFQUE4QztBcEI4Nkg5Qzs7QW9CNzZIQTtFQUF5QztBcEJpN0h6Qzs7QW9CaDdIQTtFQUFzQztBcEJvN0h0Qzs7QW9CbjdIQTtFQUFxQztBcEJ1N0hyQzs7QW9CdDdIQTtFQUFvQztBcEIwN0hwQzs7QW9CejdIQTtFQUE0QztBcEI2N0g1Qzs7QW9CNTdIQTtFQUFtQztBcEJnOEhuQzs7QW9CLzdIQTtFQUFvQztBcEJtOEhwQzs7QW9CbDhIQTtFQUFtQztBcEJzOEhuQzs7QW9CcjhIQTtFQUF3QztBcEJ5OEh4Qzs7QW9CeDhIQTtFQUEyQztBcEI0OEgzQzs7QW9CMzhIQTtFQUFpQztBcEIrOEhqQzs7QW9COThIQTtFQUFpQztBcEJrOUhqQzs7QW9CajlIQTtFQUF1QztBcEJxOUh2Qzs7QW9CcDlIQTtFQUFvQztBcEJ3OUhwQzs7QW9CdjlIQTtFQUFpQztBcEIyOUhqQzs7QW9CMTlIQTtFQUFrQztBcEI4OUhsQzs7QW9CNzlIQTtFQUFrQztBcEJpK0hsQzs7QW9CaCtIQTtFQUFtQztBcEJvK0huQzs7QW9CbitIQTtFQUEyQztBcEJ1K0gzQzs7QW9CdCtIQTtFQUFxQztBcEIwK0hyQzs7QW9CeitIQTtFQUErQjtBcEI2K0gvQjs7QW9CNStIQTtFQUFzQztBcEJnL0h0Qzs7QW9CLytIQTtFQUFxQztBcEJtL0hyQzs7QW9CbC9IQTtFQUFnQztBcEJzL0hoQzs7QW9Cci9IQTtFQUFrQztBcEJ5L0hsQzs7QW9CeC9IQTtFQUFtQztBcEI0L0huQzs7QW9CMy9IQTtFQUFrQztBcEIrL0hsQzs7QW9COS9IQTtFQUFvQztBcEJrZ0lwQzs7QW9CamdJQTtFQUFnQztBcEJxZ0loQzs7QW9CcGdJQTtFQUF5QztBcEJ3Z0l6Qzs7QW9CdmdJQTtFQUFvQztBcEIyZ0lwQzs7QW9CMWdJQTtFQUFxQztBcEI4Z0lyQzs7QW9CN2dJQTtFQUFtQztBcEJpaEluQzs7QW9CaGhJQTtFQUFvQztBcEJvaElwQzs7QW9CbmhJQTtFQUFtQztBcEJ1aEluQzs7QW9CdGhJQTtFQUF3QztBcEIwaEl4Qzs7QW9CemhJQTtFQUEwQztBcEI2aEkxQzs7QW9CNWhJQTtFQUFvQztBcEJnaUlwQzs7QW9CL2hJQTtFQUFpQztBcEJtaUlqQzs7QW9CbGlJQTtFQUFzQztBcEJzaUl0Qzs7QW9CcmlJQTtFQUE0QztBcEJ5aUk1Qzs7QW9CeGlJQTtFQUFpQztBcEI0aUlqQzs7QW9CM2lJQTtFQUFzQztBcEIraUl0Qzs7QW9COWlJQTtFQUEwQztBcEJrakkxQzs7QW9CampJQTtFQUFtQztBcEJxakluQzs7QW9CcGpJQTtFQUFtQztBcEJ3akluQzs7QW9CdmpJQTtFQUFpQztBcEIyaklqQzs7QW9CMWpJQTtFQUFzQztBcEI4akl0Qzs7QW9CN2pJQTtFQUF1QztBcEJpa0l2Qzs7QW9CaGtJQTtFQUFxQztBcEJva0lyQzs7QW9CbmtJQTtFQUF5QztBcEJ1a0l6Qzs7QW9CdGtJQTtFQUFxQztBcEIwa0lyQzs7QW9CemtJQTtFQUFtQztBcEI2a0luQzs7QW9CNWtJQTtFQUF3QztBcEJnbEl4Qzs7QW9CL2tJQTtFQUF5QztBcEJtbEl6Qzs7QW9CbGxJQTtFQUEyQztBcEJzbEkzQzs7QW9CcmxJQTtFQUFvQztBcEJ5bElwQzs7QW9CeGxJQTtFQUFrQztBcEI0bElsQzs7QW9CM2xJQTtFQUFtQztBcEIrbEluQzs7QW9COWxJQTtFQUEwQztBcEJrbUkxQzs7QW9Cam1JQTtFQUFrQztBcEJxbUlsQzs7QW9CcG1JQTtFQUF1QztBcEJ3bUl2Qzs7QW9Cdm1JQTtFQUF5QztBcEIybUl6Qzs7QW9CMW1JQTtFQUF1QztBcEI4bUl2Qzs7QW9CN21JQTtFQUF3QztBcEJpbkl4Qzs7QW9CaG5JQTtFQUF3QztBcEJvbkl4Qzs7QW9Cbm5JQTtFQUF1QztBcEJ1bkl2Qzs7QW9CdG5JQTtFQUFpQztBcEIwbklqQzs7QW9Cem5JQTtFQUF1QztBcEI2bkl2Qzs7QW9CNW5JQTtFQUF1QztBcEJnb0l2Qzs7QW9CL25JQTtFQUFxQztBcEJtb0lyQzs7QW9CbG9JQTtFQUFvQztBcEJzb0lwQzs7QW9Ccm9JQTtFQUFrQztBcEJ5b0lsQzs7QW9CeG9JQTtFQUFpQztBcEI0b0lqQzs7QW9CM29JQTtFQUFzQztBcEIrb0l0Qzs7QW9COW9JQTtFQUE0QztBcEJrcEk1Qzs7QW9CanBJQTtFQUF1QztBcEJxcEl2Qzs7QW9CcHBJQTtFQUEyQztBcEJ3cEkzQzs7QW9CdnBJQTtFQUFxQztBcEIycElyQzs7QW9CMXBJQTtFQUF5QztBcEI4cEl6Qzs7QW9CN3BJQTtFQUFzQztBcEJpcUl0Qzs7QW9CaHFJQTtFQUEwQztBcEJvcUkxQzs7QW9CbnFJQTtFQUF5QztBcEJ1cUl6Qzs7QW9CdHFJQTtFQUE2QztBcEIwcUk3Qzs7QW9CenFJQTtFQUE0QztBcEI2cUk1Qzs7QW9CNXFJQTtFQUFzQztBcEJnckl0Qzs7QW9CL3FJQTtFQUE2QztBcEJtckk3Qzs7QW9CbHJJQTtFQUFrRDtBcEJzcklsRDs7QW9CcnJJQTtFQUF5QztBcEJ5ckl6Qzs7QW9CeHJJQTtFQUE0QztBcEI0ckk1Qzs7QW9CM3JJQTtFQUEyQztBcEIrckkzQzs7QW9COXJJQTtFQUFpQztBcEJrc0lqQzs7QW9CanNJQTtFQUF5QztBcEJxc0l6Qzs7QW9CcHNJQTtFQUF3QztBcEJ3c0l4Qzs7QW9CdnNJQTtFQUFpQztBcEIyc0lqQzs7QW9CMXNJQTtFQUFxQztBcEI4c0lyQzs7QW9CN3NJQTtFQUF3QztBcEJpdEl4Qzs7QW9CaHRJQTtFQUFtQztBcEJvdEluQzs7QW9CbnRJQTtFQUFrQztBcEJ1dElsQzs7QW9CdHRJQTtFQUFpQztBcEIwdElqQzs7QW9CenRJQTtFQUFzQztBcEI2dEl0Qzs7QW9CNXRJQTtFQUFpQztBcEJndUlqQzs7QW9CL3RJQTtFQUFxQztBcEJtdUlyQzs7QW9CbHVJQTtFQUF1QztBcEJzdUl2Qzs7QW9CcnVJQTtFQUFvQztBcEJ5dUlwQzs7QW9CeHVJQTtFQUFvQztBcEI0dUlwQzs7QW9CM3VJQTtFQUFxQztBcEIrdUlyQzs7QW9COXVJQTtFQUEyQztBcEJrdkkzQzs7QW9CanZJQTtFQUE0QztBcEJxdkk1Qzs7QW9CcHZJQTtFQUEyQztBcEJ3dkkzQzs7QW9CdnZJQTtFQUFpQztBcEIydklqQzs7QW9CMXZJQTtFQUFxQztBcEI4dklyQzs7QW9CN3ZJQTtFQUFzQztBcEJpd0l0Qzs7QW9CaHdJQTtFQUEwQztBcEJvd0kxQzs7QW9CbndJQTtFQUFnRDtBcEJ1d0loRDs7QW9CdHdJQTtFQUFnRDtBcEIwd0loRDs7QW9CendJQTtFQUFpRDtBcEI2d0lqRDs7QW9CNXdJQTtFQUE4QztBcEJneEk5Qzs7QW9CL3dJQTtFQUE0QztBcEJteEk1Qzs7QW9CbHhJQTtFQUE0QztBcEJzeEk1Qzs7QW9CcnhJQTtFQUE2QztBcEJ5eEk3Qzs7QW9CeHhJQTtFQUEwQztBcEI0eEkxQzs7QW9CM3hJQTtFQUFxQztBcEIreElyQzs7QW9COXhJQTtFQUF1QztBcEJreUl2Qzs7QW9CanlJQTtFQUFxQztBcEJxeUlyQzs7QW9CcHlJQTtFQUF5QztBcEJ3eUl6Qzs7QW9CdnlJQTtFQUFrQztBcEIyeUlsQzs7QW9CMXlJQTtFQUF3QztBcEI4eUl4Qzs7QW9CN3lJQTtFQUFpQztBcEJpeklqQzs7QW9CaHpJQTtFQUFpQztBcEJveklqQzs7QW9CbnpJQTtFQUFvQztBcEJ1eklwQzs7QW9CdHpJQTtFQUFrQztBcEIweklsQzs7QW9CenpJQTtFQUFtQztBcEI2ekluQzs7QW9CNXpJQTtFQUFzQztBcEJnMEl0Qzs7QW9CL3pJQTtFQUFvQztBcEJtMElwQzs7QW9CbDBJQTtFQUFzQztBcEJzMEl0Qzs7QW9CcjBJQTtFQUFpQztBcEJ5MElqQzs7QW9CeDBJQTtFQUF3QztBcEI0MEl4Qzs7QW9CMzBJQTtFQUFxQztBcEIrMElyQzs7QW9COTBJQTtFQUFnQztBcEJrMUloQzs7QW9CajFJQTtFQUF1QztBcEJxMUl2Qzs7QW9CcDFJQTtFQUEyQztBcEJ3MUkzQzs7QW9CdjFJQTtFQUF1QztBcEIyMUl2Qzs7QW9CMTFJQTtFQUEyQztBcEI4MUkzQzs7QW9CNzFJQTtFQUFpRDtBcEJpMklqRDs7QW9CaDJJQTtFQUE2QztBcEJvMkk3Qzs7QW9CbjJJQTtFQUE0QztBcEJ1Mkk1Qzs7QW9CdDJJQTtFQUFtRDtBcEIwMkluRDs7QW9CejJJQTtFQUE2QztBcEI2Mkk3Qzs7QW9CNTJJQTtFQUE0QztBcEJnM0k1Qzs7QW9CLzJJQTtFQUFnRDtBcEJtM0loRDs7QW9CbDNJQTtFQUE2QztBcEJzM0k3Qzs7QW9CcjNJQTtFQUE2QztBcEJ5M0k3Qzs7QW9CeDNJQTtFQUE2QztBcEI0M0k3Qzs7QW9CMzNJQTtFQUFvQztBcEIrM0lwQzs7QW9COTNJQTtFQUFzQztBcEJrNEl0Qzs7QW9CajRJQTtFQUFxQztBcEJxNElyQzs7QW9CcDRJQTtFQUFtQztBcEJ3NEluQzs7QW9CdjRJQTtFQUFpQztBcEIyNElqQzs7QW9CMTRJQTtFQUF3QztBcEI4NEl4Qzs7QW9CNzRJQTtFQUF3QztBcEJpNUl4Qzs7QW9CaDVJQTtFQUEwQztBcEJvNUkxQzs7QW9CbjVJQTtFQUEwQztBcEJ1NUkxQzs7QW9CdDVJQTtFQUFpQztBcEIwNUlqQzs7QW9CejVJQTtFQUFxQztBcEI2NUlyQzs7QW9CNTVJQTtFQUFtQztBcEJnNkluQzs7QW9CLzVJQTtFQUFnQztBcEJtNkloQzs7QW9CbDZJQTtFQUFpQztBcEJzNklqQzs7QW9CcjZJQTtFQUFrQztBcEJ5NklsQzs7QW9CeDZJQTtFQUFvQztBcEI0NklwQzs7QW9CMzZJQTtFQUFtQztBcEIrNkluQzs7QW9COTZJQTtFQUFxQztBcEJrN0lyQzs7QW9CajdJQTtFQUFtQztBcEJxN0luQzs7QW9CcDdJQTtFQUFrQztBcEJ3N0lsQzs7QW9CdjdJQTtFQUFtQztBcEIyN0luQzs7QW9CMTdJQTtFQUFzQztBcEI4N0l0Qzs7QW9CNzdJQTtFQUFxQztBcEJpOElyQzs7QW9CaDhJQTtFQUFnQztBcEJvOEloQzs7QW9CbjhJQTtFQUFzQztBcEJ1OEl0Qzs7QW9CdDhJQTtFQUE2QztBcEIwOEk3Qzs7QW9CejhJQTtFQUFtQztBcEI2OEluQzs7QW9CNThJQTtFQUFxQztBcEJnOUlyQzs7QW9CLzhJQTtFQUFvQztBcEJtOUlwQzs7QW9CbDlJQTtFQUFvQztBcEJzOUlwQzs7QW9CcjlJQTtFQUFtQztBcEJ5OUluQzs7QW9CeDlJQTtFQUFzQztBcEI0OUl0Qzs7QW9CMzlJQTtFQUFzQztBcEIrOUl0Qzs7QW9COTlJQTtFQUF1QztBcEJrK0l2Qzs7QW9CaitJQTtFQUEyQztBcEJxK0kzQzs7QW9CcCtJQTtFQUFpRDtBcEJ3K0lqRDs7QW9CditJQTtFQUE2QztBcEIyK0k3Qzs7QW9CMStJQTtFQUE2QztBcEI4K0k3Qzs7QW9CNytJQTtFQUF1QztBcEJpL0l2Qzs7QW9CaC9JQTtFQUFzQztBcEJvL0l0Qzs7QW9Cbi9JQTtFQUFzQztBcEJ1L0l0Qzs7QW9CdC9JQTtFQUF1QztBcEIwL0l2Qzs7QW9Cei9JQTtFQUFrQztBcEI2L0lsQzs7QW9CNS9JQTtFQUF5QztBcEJnZ0p6Qzs7QW9CLy9JQTtFQUEwQztBcEJtZ0oxQzs7QW9CbGdKQTtFQUEwQztBcEJzZ0oxQzs7QW9CcmdKQTtFQUF5QztBcEJ5Z0p6Qzs7QW9CeGdKQTtFQUFzQztBcEI0Z0p0Qzs7QW9CM2dKQTtFQUFtQztBcEIrZ0puQzs7QW9COWdKQTtFQUFnQztBcEJraEpoQzs7QW9CamhKQTtFQUFxQztBcEJxaEpyQzs7QW9CcGhKQTtFQUFrQztBcEJ3aEpsQzs7QW9CdmhKQTtFQUFtQztBcEIyaEpuQzs7QW9CMWhKQTtFQUFtQztBcEI4aEpuQzs7QW9CN2hKQTtFQUF1QztBcEJpaUp2Qzs7QW9CaGlKQTtFQUEyQztBcEJvaUozQzs7QW9CbmlKQTtFQUErQztBcEJ1aUovQzs7QW9CdGlKQTtFQUFpQztBcEIwaUpqQzs7QW9CemlKQTtFQUFtQztBcEI2aUpuQzs7QW9CNWlKQTtFQUF1QztBcEJnakp2Qzs7QW9CL2lKQTtFQUEyQztBcEJtakozQzs7QW9CbGpKQTtFQUE0QztBcEJzako1Qzs7QW9CcmpKQTtFQUFnRDtBcEJ5akpoRDs7QW9CeGpKQTtFQUF3QztBcEI0akp4Qzs7QW9CM2pKQTtFQUE0QztBcEIrako1Qzs7QW9COWpKQTtFQUE2QztBcEJra0o3Qzs7QW9CamtKQTtFQUFpRDtBcEJxa0pqRDs7QW9CcGtKQTtFQUErQztBcEJ3a0ovQzs7QW9CdmtKQTtFQUFtQztBcEIya0puQzs7QW9CMWtKQTtFQUFxQztBcEI4a0pyQzs7QW9CN2tKQTtFQUFpQztBcEJpbEpqQzs7QW9CaGxKQTtFQUF1QztBcEJvbEp2Qzs7QW9CbmxKQTtFQUF1QztBcEJ1bEp2Qzs7QW9CdGxKQTtFQUEwQztBcEIwbEoxQzs7QW9CemxKQTtFQUFtQztBcEI2bEpuQzs7QW9CNWxKQTtFQUF1QztBcEJnbUp2Qzs7QW9CL2xKQTtFQUFxQztBcEJtbUpyQzs7QW9CbG1KQTtFQUFzQztBcEJzbUp0Qzs7QW9Ccm1KQTtFQUFrQztBcEJ5bUpsQzs7QW9CeG1KQTtFQUFzQztBcEI0bUp0Qzs7QW9CM21KQTtFQUEwQztBcEIrbUoxQzs7QW9COW1KQTtFQUF1QztBcEJrbkp2Qzs7QW9Cam5KQTtFQUFnQztBcEJxbkpoQzs7QW9CcG5KQTtFQUFvQztBcEJ3bkpwQzs7QW9Cdm5KQTtFQUE2QztBcEIybko3Qzs7QW9CMW5KQTtFQUFvQztBcEI4bkpwQzs7QW9CN25KQTtFQUFrQztBcEJpb0psQzs7QW9CaG9KQTtFQUFzQztBcEJvb0p0Qzs7QW9Cbm9KQTtFQUE0QztBcEJ1b0o1Qzs7QW9CdG9KQTtFQUF3QztBcEIwb0p4Qzs7QW9Cem9KQTtFQUFvQztBcEI2b0pwQzs7QW9CNW9KQTtFQUFvQztBcEJncEpwQzs7QW9CL29KQTtFQUFpQztBcEJtcEpqQzs7QW9CbHBKQTtFQUEwQztBcEJzcEoxQzs7QW9CcnBKQTtFQUFtQztBcEJ5cEpuQzs7QW9CeHBKQTtFQUFzQztBcEI0cEp0Qzs7QW9CM3BKQTtFQUFtQztBcEIrcEpuQzs7QW9COXBKQTtFQUFpQztBcEJrcUpqQzs7QW9CanFKQTtFQUFvQztBcEJxcUpwQzs7QW9CcHFKQTtFQUFzQztBcEJ3cUp0Qzs7QW9CdnFKQTtFQUEwQztBcEIycUoxQzs7QW9CMXFKQTtFQUFnQztBcEI4cUpoQzs7QW9CN3FKQTtFQUFnQztBcEJpckpoQzs7QW9CaHJKQTtFQUF3QztBcEJvckp4Qzs7QW9CbnJKQTtFQUF5QztBcEJ1ckp6Qzs7QW9CdHJKQTtFQUEyQztBcEIwckozQzs7QW9CenJKQTtFQUFvQztBcEI2ckpwQzs7QW9CNXJKQTtFQUEyQztBcEJnc0ozQzs7QW9CL3JKQTtFQUEwQztBcEJtc0oxQzs7QW9CbHNKQTtFQUFpRDtBcEJzc0pqRDs7QW9CcnNKQTtFQUFvQztBcEJ5c0pwQzs7QW9CeHNKQTtFQUFxQztBcEI0c0pyQzs7QW9CM3NKQTtFQUF5QztBcEIrc0p6Qzs7QW9COXNKQTtFQUErQjtBcEJrdEovQjs7QW9CanRKQTtFQUFrQztBcEJxdEpsQzs7QW9CcHRKQTtFQUFxQztBcEJ3dEpyQzs7QW9CdnRKQTtFQUFtQztBcEIydEpuQzs7QW9CMXRKQTtFQUFrQztBcEI4dEpsQzs7QW9CN3RKQTtFQUEwQztBcEJpdUoxQzs7QW9CaHVKQTtFQUFrQztBcEJvdUpsQzs7QW9CbnVKQTtFQUFxQztBcEJ1dUpyQzs7QW9CdHVKQTtFQUFnQztBcEIwdUpoQzs7QW9CenVKQTtFQUFrQztBcEI2dUpsQzs7QW9CNXVKQTtFQUFvQztBcEJndkpwQzs7QW9CL3VKQTtFQUFtQztBcEJtdkpuQzs7QW9CbHZKQTtFQUFpQztBcEJzdkpqQzs7QW9CcnZKQTtFQUFxQztBcEJ5dkpyQzs7QW9CeHZKQTtFQUF1QztBcEI0dkp2Qzs7QW9CM3ZKQTtFQUFrQztBcEIrdkpsQzs7QW9COXZKQTtFQUFzQztBcEJrd0p0Qzs7QW9CandKQTtFQUFrQztBcEJxd0psQzs7QW9CcHdKQTtFQUF3QztBcEJ3d0p4Qzs7QW9CdndKQTtFQUE0QztBcEIyd0o1Qzs7QW9CMXdKQTtFQUF5QztBcEI4d0p6Qzs7QW9CN3dKQTtFQUFvQztBcEJpeEpwQzs7QW9CaHhKQTtFQUFtQztBcEJveEpuQzs7QW9CbnhKQTtFQUFtQztBcEJ1eEpuQzs7QW9CdHhKQTtFQUF1QztBcEIweEp2Qzs7QW9CenhKQTtFQUF3QztBcEI2eEp4Qzs7QW9CNXhKQTtFQUFzQztBcEJneUp0Qzs7QW9CL3hKQTtFQUEwQztBcEJteUoxQzs7QW9CbHlKQTtFQUFzQztBcEJzeUp0Qzs7QW9CcnlKQTtFQUEwQztBcEJ5eUoxQzs7QW9CeHlKQTtFQUFvQztBcEI0eUpwQzs7QW9CM3lKQTtFQUEyQztBcEIreUozQzs7QW9COXlKQTtFQUFpRDtBcEJrekpqRDs7QW9CanpKQTtFQUEwQztBcEJxekoxQzs7QW9CcHpKQTtFQUFxQztBcEJ3ekpyQzs7QW9CdnpKQTtFQUEyQztBcEIyekozQzs7QW9CMXpKQTtFQUFrQztBcEI4ekpsQzs7QW9CN3pKQTtFQUFvQztBcEJpMEpwQzs7QW9CaDBKQTtFQUFrQztBcEJvMEpsQzs7QW9CbjBKQTtFQUF5QztBcEJ1MEp6Qzs7QW9CdDBKQTtFQUFnQztBcEIwMEpoQzs7QW9CejBKQTtFQUFvQztBcEI2MEpwQzs7QW9CNTBKQTtFQUFzQztBcEJnMUp0Qzs7QW9CLzBKQTtFQUFtQztBcEJtMUpuQzs7QW9CbDFKQTtFQUFrQztBcEJzMUpsQzs7QW9CcjFKQTtFQUFvQztBcEJ5MUpwQzs7QW9CeDFKQTtFQUFnQztBcEI0MUpoQzs7QW9CMzFKQTtFQUFvQztBcEIrMUpwQzs7QW9COTFKQTtFQUFzQztBcEJrMkp0Qzs7QW9CajJKQTtFQUFvQztBcEJxMkpwQzs7QW9CcDJKQTtFQUF1QztBcEJ3Mkp2Qzs7QW9CdjJKQTtFQUFtQztBcEIyMkpuQzs7QW9CMTJKQTtFQUF1QztBcEI4Mkp2Qzs7QW9CNzJKQTtFQUE4QztBcEJpM0o5Qzs7QW9CaDNKQTtFQUF5QztBcEJvM0p6Qzs7QW9CbjNKQTtFQUFvQztBcEJ1M0pwQzs7QW9CdDNKQTtFQUF5QztBcEIwM0p6Qzs7QW9CejNKQTtFQUEwQztBcEI2M0oxQzs7QW9CNTNKQTtFQUF5QztBcEJnNEp6Qzs7QW9CLzNKQTtFQUF1QztBcEJtNEp2Qzs7QW9CbDRKQTtFQUFvQztBcEJzNEpwQzs7QW9CcjRKQTtFQUFvQztBcEJ5NEpwQzs7QW9CeDRKQTtFQUF1QztBcEI0NEp2Qzs7QW9CMzRKQTtFQUFzQztBcEIrNEp0Qzs7QW9COTRKQTtFQUF5QztBcEJrNUp6Qzs7QW9CajVKQTtFQUF5QztBcEJxNUp6Qzs7QW9CcDVKQTtFQUF5QztBcEJ3NUp6Qzs7QW9CdjVKQTtFQUErQztBcEIyNUovQzs7QW9CMTVKQTtFQUF3QztBcEI4NUp4Qzs7QW9CNzVKQTtFQUF3QztBcEJpNkp4Qzs7QW9CaDZKQTtFQUE4QztBcEJvNko5Qzs7QW9CbjZKQTtFQUE2QztBcEJ1Nko3Qzs7QW9CdDZKQTtFQUFrQztBcEIwNkpsQzs7QW9CejZKQTtFQUFzQztBcEI2Nkp0Qzs7QW9CNTZKQTtFQUF5QztBcEJnN0p6Qzs7QW9CLzZKQTtFQUF5QztBcEJtN0p6Qzs7QW9CbDdKQTtFQUF1QztBcEJzN0p2Qzs7QW9CcjdKQTtFQUF5QztBcEJ5N0p6Qzs7QW9CeDdKQTtFQUF3QztBcEI0N0p4Qzs7QW9CMzdKQTtFQUF5QztBcEIrN0p6Qzs7QW9COTdKQTtFQUE2QztBcEJrOEo3Qzs7QW9CajhKQTtFQUF5QztBcEJxOEp6Qzs7QW9CcDhKQTtFQUF3QztBcEJ3OEp4Qzs7QW9CdjhKQTtFQUFnQztBcEIyOEpoQzs7QW9CMThKQTtFQUErQjtBcEI4OEovQjs7QW9CNzhKQTtFQUFrQztBcEJpOUpsQzs7QW9CaDlKQTtFQUEyQztBcEJvOUozQzs7QW9CbjlKQTtFQUFnQztBcEJ1OUpoQzs7QW9CdDlKQTtFQUF1QztBcEIwOUp2Qzs7QW9CejlKQTtFQUEyQztBcEI2OUozQzs7QW9CNTlKQTtFQUEyQztBcEJnK0ozQzs7QW9CLzlKQTtFQUEwQztBcEJtK0oxQzs7QW9CbCtKQTtFQUE4QztBcEJzK0o5Qzs7QW9CcitKQTtFQUFnQztBcEJ5K0poQzs7QW9CeCtKQTtFQUF1QztBcEI0K0p2Qzs7QW9CMytKQTtFQUFrQztBcEIrK0psQzs7QW9COStKQTtFQUFzQztBcEJrL0p0Qzs7QW9Cai9KQTtFQUF3QztBcEJxL0p4Qzs7QW9CcC9KQTtFQUE2QztBcEJ3L0o3Qzs7QW9Cdi9KQTtFQUFrQztBcEIyL0psQzs7QW9CMS9KQTtFQUF3QztBcEI4L0p4Qzs7QW9CNy9KQTtFQUE2QztBcEJpZ0s3Qzs7QW9CaGdLQTtFQUFrQztBcEJvZ0tsQzs7QW9CbmdLQTtFQUFzQztBcEJ1Z0t0Qzs7QW9CdGdLQTtFQUEwQztBcEIwZ0sxQzs7QW9CemdLQTtFQUE0QztBcEI2Z0s1Qzs7QW9CNWdLQTtFQUF3QztBcEJnaEt4Qzs7QW9CL2dLQTtFQUF3QztBcEJtaEt4Qzs7QW9CbGhLQTtFQUEwQztBcEJzaEsxQzs7QW9CcmhLQTtFQUFpQztBcEJ5aEtqQzs7QW9CeGhLQTtFQUF3QztBcEI0aEt4Qzs7QW9CM2hLQTtFQUF3QztBcEIraEt4Qzs7QW9COWhLQTtFQUFpQztBcEJraUtqQzs7QW9CamlLQTtFQUFpQztBcEJxaUtqQzs7QW9CcGlLQTtFQUF3QztBcEJ3aUt4Qzs7QW9CdmlLQTtFQUF5QztBcEIyaUt6Qzs7QW9CMWlLQTtFQUF5QztBcEI4aUt6Qzs7QW9CN2lLQTtFQUF3QztBcEJpakt4Qzs7QW9CaGpLQTtFQUFvQztBcEJvaktwQzs7QW9CbmpLQTtFQUFtQztBcEJ1aktuQzs7QW9CdGpLQTtFQUF3QztBcEIwakt4Qzs7QW9CempLQTtFQUF1QztBcEI2akt2Qzs7QW9CNWpLQTtFQUFpQztBcEJna0tqQzs7QW9CL2pLQTtFQUFtQztBcEJta0tuQzs7QW9CbGtLQTtFQUF3QztBcEJza0t4Qzs7QW9CcmtLQTtFQUFnQztBcEJ5a0toQzs7QW9CeGtLQTtFQUFzQztBcEI0a0t0Qzs7QW9CM2tLQTtFQUFpQztBcEIra0tqQzs7QW9COWtLQTtFQUFvQztBcEJrbEtwQzs7QW9CamxLQTtFQUF5QztBcEJxbEt6Qzs7QW9CcGxLQTtFQUF3QztBcEJ3bEt4Qzs7QW9CdmxLQTtFQUFxQztBcEIybEtyQzs7QW9CMWxLQTtFQUF1QztBcEI4bEt2Qzs7QW9CN2xLQTtFQUFzQztBcEJpbUt0Qzs7QW9CaG1LQTtFQUFpQztBcEJvbUtqQzs7QW9Cbm1LQTtFQUEwQztBcEJ1bUsxQzs7QW9CdG1LQTtFQUF5QztBcEIwbUt6Qzs7QW9Cem1LQTtFQUFnRDtBcEI2bUtoRDs7QW9CNW1LQTtFQUFvRDtBcEJnbktwRDs7QW9CL21LQTtFQUF5QztBcEJtbkt6Qzs7QW9CbG5LQTtFQUFrQztBcEJzbktsQzs7QW9Ccm5LQTtFQUF5QztBcEJ5bkt6Qzs7QW9CeG5LQTtFQUF3QztBcEI0bkt4Qzs7QW9CM25LQTtFQUF1QztBcEIrbkt2Qzs7QW9COW5LQTtFQUF5QztBcEJrb0t6Qzs7QW9Cam9LQTtFQUE0QztBcEJxb0s1Qzs7QW9CcG9LQTtFQUFzQztBcEJ3b0t0Qzs7QW9Cdm9LQTtFQUF5QztBcEIyb0t6Qzs7QW9CMW9LQTtFQUFzQztBcEI4b0t0Qzs7QW9CN29LQTtFQUFvQztBcEJpcEtwQzs7QW9CaHBLQTtFQUFtQztBcEJvcEtuQzs7QW9CbnBLQTtFQUF5QztBcEJ1cEt6Qzs7QW9CdHBLQTtFQUFtQztBcEIwcEtuQzs7QW9CenBLQTtFQUErQjtBcEI2cEsvQjs7QW9CNXBLQTtFQUFtQztBcEJncUtuQzs7QW9CL3BLQTtFQUFxQztBcEJtcUtyQzs7QW9CbHFLQTtFQUE0QztBcEJzcUs1Qzs7QW9CcnFLQTtFQUE0QztBcEJ5cUs1Qzs7QW9CeHFLQTtFQUFzQztBcEI0cUt0Qzs7QW9CM3FLQTtFQUFzQztBcEIrcUt0Qzs7QW9COXFLQTtFQUFrQztBcEJrcktsQzs7QW9CanJLQTtFQUF1QztBcEJxckt2Qzs7QW9CcHJLQTtFQUF3QztBcEJ3ckt4Qzs7QW9CdnJLQTtFQUFrQztBcEIycktsQzs7QW9CMXJLQTtFQUFzQztBcEI4ckt0Qzs7QW9CN3JLQTtFQUFtQztBcEJpc0tuQzs7QW9CaHNLQTtFQUF3QztBcEJvc0t4Qzs7QW9CbnNLQTtFQUFvQztBcEJ1c0twQzs7QW9CdHNLQTtFQUFrQztBcEIwc0tsQzs7QW9CenNLQTtFQUFzQztBcEI2c0t0Qzs7QW9CNXNLQTtFQUEwQztBcEJndEsxQzs7QW9CL3NLQTtFQUFrQztBcEJtdEtsQzs7QW9CbHRLQTtFQUFzQztBcEJzdEt0Qzs7QW9CcnRLQTtFQUFvQztBcEJ5dEtwQzs7QW9CeHRLQTtFQUFzQztBcEI0dEt0Qzs7QW9CM3RLQTtFQUFnQztBcEIrdEtoQzs7QW9COXRLQTtFQUF5QztBcEJrdUt6Qzs7QW9CanVLQTtFQUFtQztBcEJxdUtuQzs7QW9CcHVLQTtFQUF5QztBcEJ3dUt6Qzs7QW9CdnVLQTtFQUFvQztBcEIydUtwQzs7QW9CMXVLQTtFQUFtQztBcEI4dUtuQzs7QW9CN3VLQTtFQUFrQztBcEJpdktsQzs7QW9CaHZLQTtFQUF3QztBcEJvdkt4Qzs7QW9CbnZLQTtFQUFtQztBcEJ1dktuQzs7QW9CdHZLQTtFQUFrQztBcEIwdktsQzs7QW9CenZLQTtFQUFvQztBcEI2dktwQzs7QW9CNXZLQTtFQUF5QztBcEJnd0t6Qzs7QW9CL3ZLQTtFQUFnRDtBcEJtd0toRDs7QW9CbHdLQTtFQUErQztBcEJzd0svQzs7QW9CcndLQTtFQUEyQztBcEJ5d0szQzs7QW9CeHdLQTtFQUFvQztBcEI0d0twQzs7QW9CM3dLQTtFQUFzQztBcEIrd0t0Qzs7QW9COXdLQTtFQUFtQztBcEJreEtuQzs7QW9CanhLQTtFQUF5QztBcEJxeEt6Qzs7QW9CcHhLQTtFQUEwQztBcEJ3eEsxQzs7QW9CdnhLQTtFQUFtQztBcEIyeEtuQzs7QW9CMXhLQTtFQUFpQztBcEI4eEtqQzs7QW9CN3hLQTtFQUFxQztBcEJpeUtyQzs7QW9CaHlLQTtFQUF5QztBcEJveUt6Qzs7QW9CbnlLQTtFQUF1QztBcEJ1eUt2Qzs7QW9CdHlLQTtFQUEwQztBcEIweUsxQzs7QW9CenlLQTtFQUFtQztBcEI2eUtuQzs7QW9CNXlLQTtFQUFtQztBcEJnektuQzs7QW9CL3lLQTtFQUFxQztBcEJtektyQzs7QW9CbHpLQTtFQUF5QztBcEJzekt6Qzs7QW9CcnpLQTtFQUF1QztBcEJ5ekt2Qzs7QW9CeHpLQTtFQUFrQztBcEI0ektsQzs7QW9CM3pLQTtFQUFzQztBcEIrekt0Qzs7QW9COXpLQTtFQUFtQztBcEJrMEtuQzs7QW9CajBLQTtFQUF1QztBcEJxMEt2Qzs7QW9CcDBLQTtFQUF5QztBcEJ3MEt6Qzs7QW9CdjBLQTtFQUFzQztBcEIyMEt0Qzs7QW9CMTBLQTtFQUFxQztBcEI4MEtyQzs7QW9CNzBLQTtFQUFvQztBcEJpMUtwQzs7QW9CaDFLQTtFQUF3QztBcEJvMUt4Qzs7QW9CbjFLQTtFQUFnQztBcEJ1MUtoQzs7QW9CdDFLQTtFQUFtQztBcEIwMUtuQzs7QW9CejFLQTtFQUFpQztBcEI2MUtqQzs7QW9CNTFLQTtFQUEwQztBcEJnMksxQzs7QW9CLzFLQTtFQUFpQztBcEJtMktqQzs7QW9CbDJLQTtFQUFrQztBcEJzMktsQzs7QW9CcjJLQTtFQUFtQztBcEJ5MktuQzs7QW9CeDJLQTtFQUEwQztBcEI0MksxQzs7QW9CMzJLQTtFQUF1QztBcEIrMkt2Qzs7QW9COTJLQTtFQUFvQztBcEJrM0twQzs7QW9CajNLQTtFQUFrQztBcEJxM0tsQzs7QW9CcDNLQTtFQUEwQztBcEJ3M0sxQzs7QW9CdjNLQTtFQUE2QztBcEIyM0s3Qzs7QW9CMTNLQTtFQUFtQztBcEI4M0tuQzs7QW9CNzNLQTtFQUFnQztBcEJpNEtoQzs7QW9CaDRLQTtFQUF1QztBcEJvNEt2Qzs7QW9CbjRLQTtFQUF1QztBcEJ1NEt2Qzs7QW9CdDRLQTtFQUFrQztBcEIwNEtsQzs7QW9CejRLQTtFQUEyQztBcEI2NEszQzs7QW9CNTRLQTtFQUE2QztBcEJnNUs3Qzs7QW9CLzRLQTtFQUEyQztBcEJtNUszQzs7QW9CbDVLQTtFQUEyQztBcEJzNUszQzs7QW9CcjVLQTtFQUFvQztBcEJ5NUtwQzs7QW9CeDVLQTtFQUF1QztBcEI0NUt2Qzs7QW9CMzVLQTtFQUFpQztBcEIrNUtqQzs7QW9COTVLQTtFQUErQjtBcEJrNksvQjs7QW9CajZLQTtFQUFpQztBcEJxNktqQzs7QW9CcDZLQTtFQUF3QztBcEJ3Nkt4Qzs7QW9CdjZLQTtFQUFvQztBcEIyNktwQzs7QW9CMTZLQTtFQUFxQztBcEI4NktyQzs7QW9CNzZLQTtFQUFtQztBcEJpN0tuQzs7QW9CaDdLQTtFQUFrQztBcEJvN0tsQzs7QW9CbjdLQTtFQUF1QztBcEJ1N0t2Qzs7QW9CdDdLQTtFQUFxQztBcEIwN0tyQzs7QW9CejdLQTtFQUFpQztBcEI2N0tqQzs7QW9CNTdLQTtFQUFzQztBcEJnOEt0Qzs7QW9CLzdLQTtFQUEyQztBcEJtOEszQzs7QW9CbDhLQTtFQUFvQztBcEJzOEtwQzs7QW9CcjhLQTtFQUFpQztBcEJ5OEtqQzs7QW9CeDhLQTtFQUFvQztBcEI0OEtwQzs7QW9CMzhLQTtFQUFzQztBcEIrOEt0Qzs7QW9COThLQTtFQUFvQztBcEJrOUtwQzs7QW9CajlLQTtFQUF5QztBcEJxOUt6Qzs7QW9CcDlLQTtFQUFvQztBcEJ3OUtwQzs7QW9CdjlLQTtFQUEwQztBcEIyOUsxQzs7QW9CMTlLQTtFQUE2QztBcEI4OUs3Qzs7QW9CNzlLQTtFQUFnRDtBcEJpK0toRDs7QW9CaCtLQTtFQUFzQztBcEJvK0t0Qzs7QW9CbitLQTtFQUFrQztBcEJ1K0tsQzs7QW9CdCtLQTtFQUFtQztBcEIwK0tuQzs7QW9CeitLQTtFQUFtQztBcEI2K0tuQzs7QW9CNStLQTtFQUF3QztBcEJnL0t4Qzs7QW9CLytLQTtFQUFtQztBcEJtL0tuQzs7QW9CbC9LQTtFQUFtQztBcEJzL0tuQzs7QW9Cci9LQTtFQUF1QztBcEJ5L0t2Qzs7QW9CeC9LQTtFQUFxQztBcEI0L0tyQzs7QW9CMy9LQTtFQUFtQztBcEIrL0tuQzs7QW9COS9LQTtFQUFvQztBcEJrZ0xwQzs7QW9CamdMQTtFQUFtQztBcEJxZ0xuQzs7QW9CcGdMQTtFQUEwQztBcEJ3Z0wxQzs7QW9CdmdMQTtFQUE0QztBcEIyZ0w1Qzs7QW9CMWdMQTtFQUF5QztBcEI4Z0x6Qzs7QW9CN2dMQTtFQUF3QztBcEJpaEx4Qzs7QW9CaGhMQTtFQUF3QztBcEJvaEx4Qzs7QW9CbmhMQTtFQUFxQztBcEJ1aExyQzs7QW9CdGhMQTtFQUFxQztBcEIwaExyQzs7QW9CemhMQTtFQUFtQztBcEI2aExuQzs7QW9CNWhMQTtFQUFzQztBcEJnaUx0Qzs7QW9CL2hMQTtFQUEwQztBcEJtaUwxQzs7QW9CbGlMQTtFQUFtQztBcEJzaUxuQzs7QW9CcmlMQTtFQUF5QztBcEJ5aUx6Qzs7QW9CeGlMQTtFQUF3QztBcEI0aUx4Qzs7QW9CM2lMQTtFQUFzQztBcEIraUx0Qzs7QW9COWlMQTtFQUF5QztBcEJrakx6Qzs7QW9CampMQTtFQUFtQztBcEJxakxuQzs7QW9CcGpMQTtFQUF5QztBcEJ3akx6Qzs7QW9CdmpMQTtFQUFtQztBcEIyakxuQzs7QW9CMWpMQTtFQUFrQztBcEI4akxsQzs7QW9CN2pMQTtFQUFzQztBcEJpa0x0Qzs7QW9CaGtMQTtFQUFzQztBcEJva0x0Qzs7QW9CbmtMQTtFQUE2QztBcEJ1a0w3Qzs7QW9CdGtMQTtFQUF5QztBcEIwa0x6Qzs7QW9CemtMQTtFQUFrQztBcEI2a0xsQzs7QW9CNWtMQTtFQUF3QztBcEJnbEx4Qzs7QW9CL2tMQTtFQUFtQztBcEJtbExuQzs7QW9CbGxMQTtFQUF1QztBcEJzbEx2Qzs7QW9CcmxMQTtFQUF5QztBcEJ5bEx6Qzs7QW9CeGxMQTtFQUF5QztBcEI0bEx6Qzs7QW9CM2xMQTtFQUF5QztBcEIrbEx6Qzs7QW9COWxMQTtFQUFpQztBcEJrbUxqQzs7QW9Cam1MQTtFQUEwQztBcEJxbUwxQzs7QW9CcG1MQTtFQUEyQztBcEJ3bUwzQzs7QW9Cdm1MQTtFQUF5QztBcEIybUx6Qzs7QW9CMW1MQTtFQUF3QztBcEI4bUx4Qzs7QW9CN21MQTtFQUF3QztBcEJpbkx4Qzs7QW9CaG5MQTtFQUFvQztBcEJvbkxwQzs7QW9Cbm5MQTtFQUF5QztBcEJ1bkx6Qzs7QW9CdG5MQTtFQUE0QztBcEIwbkw1Qzs7QW9Cem5MQTtFQUEwQztBcEI2bkwxQzs7QW9CNW5MQTtFQUFxQztBcEJnb0xyQzs7QW9CL25MQTtFQUFtQztBcEJtb0xuQzs7QW9CbG9MQTtFQUF3QztBcEJzb0x4Qzs7QW9Ccm9MQTtFQUFtQztBcEJ5b0xuQzs7QW9CeG9MQTtFQUFxQztBcEI0b0xyQzs7QW9CM29MQTtFQUF3QztBcEIrb0x4Qzs7QW9COW9MQTtFQUF3QztBcEJrcEx4Qzs7QW9CanBMQTtFQUFtQztBcEJxcExuQzs7QW9CcHBMQTtFQUFrQztBcEJ3cExsQzs7QW9CdnBMQTtFQUFpQztBcEIycExqQzs7QW9CMXBMQTtFQUFvQztBcEI4cExwQzs7QW9CN3BMQTtFQUF3QztBcEJpcUx4Qzs7QW9CaHFMQTtFQUEwQztBcEJvcUwxQzs7QW9CbnFMQTtFQUFxQztBcEJ1cUxyQzs7QW9CdHFMQTtFQUF5QztBcEIwcUx6Qzs7QW9CenFMQTtFQUFtQztBcEI2cUxuQzs7QW9CNXFMQTtFQUFxQztBcEJnckxyQzs7QW9CL3FMQTtFQUFxQztBcEJtckxyQzs7QW9CbHJMQTtFQUFxQztBcEJzckxyQzs7QW9CcnJMQTtFQUFxQztBcEJ5ckxyQzs7QW9CeHJMQTtFQUF1QztBcEI0ckx2Qzs7QW9CM3JMQTtFQUF5QztBcEIrckx6Qzs7QW9COXJMQTtFQUF5QztBcEJrc0x6Qzs7QW9CanNMQTtFQUF5QztBcEJxc0x6Qzs7QW9CcHNMQTtFQUE2QztBcEJ3c0w3Qzs7QW9CdnNMQTtFQUF5QztBcEIyc0x6Qzs7QW9CMXNMQTtFQUEwQztBcEI4c0wxQzs7QW9CN3NMQTtFQUFzQztBcEJpdEx0Qzs7QW9CaHRMQTtFQUFxQztBcEJvdExyQzs7QW9CbnRMQTtFQUF3QztBcEJ1dEx4Qzs7QW9CdHRMQTtFQUFpQztBcEIwdExqQzs7QW9CenRMQTtFQUFrQztBcEI2dExsQzs7QW9CNXRMQTtFQUFxQztBcEJndUxyQzs7QW9CL3RMQTtFQUFvQztBcEJtdUxwQzs7QW9CbHVMQTtFQUFvQztBcEJzdUxwQzs7QW9CcnVMQTtFQUFpQztBcEJ5dUxqQzs7QW9CeHVMQTtFQUFvQztBcEI0dUxwQzs7QW9CM3VMQTtFQUFxQztBcEIrdUxyQzs7QW9COXVMQTtFQUFtQztBcEJrdkxuQzs7QW9CanZMQTtFQUFxQztBcEJxdkxyQzs7QW9CcHZMQTtFQUFxQztBcEJ3dkxyQzs7QW9CdnZMQTtFQUFtQztBcEIydkxuQzs7QW9CMXZMQTtFQUEwQztBcEI4dkwxQzs7QW9CN3ZMQTtFQUFrQztBcEJpd0xsQzs7QW9CaHdMQTtFQUFzQztBcEJvd0x0Qzs7QW9CbndMQTtFQUE2QztBcEJ1d0w3Qzs7QW9CdHdMQTtFQUFxQztBcEIwd0xyQzs7QW9CendMQTtFQUFrQztBcEI2d0xsQzs7QW9CNXdMQTtFQUFrQztBcEJneExsQzs7QW9CL3dMQTtFQUF1QztBcEJteEx2Qzs7QW9CbHhMQTtFQUFrQztBcEJzeExsQzs7QW9CcnhMQTtFQUFxQztBcEJ5eExyQzs7QW9CeHhMQTtFQUFtQztBcEI0eExuQzs7QW9CM3hMQTtFQUFzQztBcEIreEx0Qzs7QW9COXhMQTtFQUE2QztBcEJreUw3Qzs7QW9CanlMQTtFQUFzQztBcEJxeUx0Qzs7QW9CcHlMQTtFQUE2QztBcEJ3eUw3Qzs7QW9CdnlMQTtFQUF1QztBcEIyeUx2Qzs7QW9CMXlMQTtFQUFrQztBcEI4eUxsQzs7QW9CN3lMQTtFQUF1QztBcEJpekx2Qzs7QW9CaHpMQTtFQUF1QztBcEJvekx2Qzs7QW9CbnpMQTtFQUF1QztBcEJ1ekx2Qzs7QW9CdHpMQTtFQUFpQztBcEIwekxqQzs7QW9CenpMQTtFQUFrQztBcEI2ekxsQzs7QW9CNXpMQTtFQUFvQztBcEJnMExwQzs7QW9CL3pMQTtFQUF3QztBcEJtMEx4Qzs7QW9CbDBMQTtFQUFnQztBcEJzMExoQzs7QW9CcjBMQTtFQUFrQztBcEJ5MExsQzs7QW9CeDBMQTtFQUFxQztBcEI0MExyQzs7QW9CMzBMQTtFQUEyQztBcEIrMEwzQzs7QW9COTBMQTtFQUE0QztBcEJrMUw1Qzs7QW9CajFMQTtFQUFtQztBcEJxMUxuQzs7QW9CcDFMQTtFQUF5QztBcEJ3MUx6Qzs7QW9CdjFMQTtFQUF5QztBcEIyMUx6Qzs7QW9CMTFMQTtFQUFzQztBcEI4MUx0Qzs7QW9CNzFMQTtFQUF1QztBcEJpMkx2Qzs7QW9CaDJMQTtFQUFvQztBcEJvMkxwQzs7QW9CbjJMQTtFQUF1QztBcEJ1Mkx2Qzs7QW9CdDJMQTtFQUFxQztBcEIwMkxyQzs7QW9CejJMQTtFQUFpQztBcEI2MkxqQzs7QW9CNTJMQTtFQUFrQztBcEJnM0xsQzs7QW9CLzJMQTtFQUF3QztBcEJtM0x4Qzs7QW9CbDNMQTtFQUF5QztBcEJzM0x6Qzs7QW9CcjNMQTtFQUFpQztBcEJ5M0xqQzs7QW9CeDNMQTtFQUE0QztBcEI0M0w1Qzs7QW9CMzNMQTtFQUFnRDtBcEIrM0xoRDs7QW9COTNMQTtFQUEwQztBcEJrNEwxQzs7QW9CajRMQTtFQUE4QztBcEJxNEw5Qzs7QW9CcDRMQTtFQUFxQztBcEJ3NExyQzs7QW9CdjRMQTtFQUE2QztBcEIyNEw3Qzs7QW9CMTRMQTtFQUFpRDtBcEI4NExqRDs7QW9CNzRMQTtFQUEyQztBcEJpNUwzQzs7QW9CaDVMQTtFQUErQztBcEJvNUwvQzs7QW9CbjVMQTtFQUF3QztBcEJ1NUx4Qzs7QW9CdDVMQTtFQUE2QztBcEIwNUw3Qzs7QW9CejVMQTtFQUEyQztBcEI2NUwzQzs7QW9CNTVMQTtFQUFzQztBcEJnNkx0Qzs7QW9CLzVMQTtFQUE4QztBcEJtNkw5Qzs7QW9CbDZMQTtFQUFrRDtBcEJzNkxsRDs7QW9CcjZMQTtFQUE0QztBcEJ5Nkw1Qzs7QW9CeDZMQTtFQUFnRDtBcEI0NkxoRDs7QW9CMzZMQTtFQUE2QztBcEIrNkw3Qzs7QW9COTZMQTtFQUFpRDtBcEJrN0xqRDs7QW9CajdMQTtFQUEyQztBcEJxN0wzQzs7QW9CcDdMQTtFQUErQztBcEJ3N0wvQzs7QW9CdjdMQTtFQUEyQztBcEIyN0wzQzs7QW9CMTdMQTtFQUErQztBcEI4N0wvQzs7QW9CNzdMQTtFQUF5QztBcEJpOEx6Qzs7QW9CaDhMQTtFQUE2QztBcEJvOEw3Qzs7QW9CbjhMQTtFQUFvQztBcEJ1OExwQzs7QW9CdDhMQTtFQUF1QztBcEIwOEx2Qzs7QW9CejhMQTtFQUFpQztBcEI2OExqQzs7QW9CNThMQTtFQUF1QztBcEJnOUx2Qzs7QW9CLzhMQTtFQUFnQztBcEJtOUxoQzs7QW9CbDlMQTtFQUEwQztBcEJzOUwxQzs7QW9CcjlMQTtFQUErQztBcEJ5OUwvQzs7QW9CeDlMQTtFQUFtRDtBcEI0OUxuRDs7QW9CMzlMQTtFQUFrQztBcEIrOUxsQzs7QW9COTlMQTtFQUFxQztBcEJrK0xyQzs7QW9CaitMQTtFQUFvQztBcEJxK0xwQzs7QW9CcCtMQTtFQUFvQztBcEJ3K0xwQzs7QW9CditMQTtFQUF5QztBcEIyK0x6Qzs7QW9CMStMQTtFQUFxQztBcEI4K0xyQzs7QW9CNytMQTtFQUF3QztBcEJpL0x4Qzs7QW9CaC9MQTtFQUFtQztBcEJvL0xuQzs7QW9Cbi9MQTtFQUErQztBcEJ1L0wvQzs7QW9CdC9MQTtFQUF1QztBcEIwL0x2Qzs7QW9Cei9MQTtFQUFvQztBcEI2L0xwQzs7QW9CNS9MQTtFQUEwQztBcEJnZ00xQzs7QW9CLy9MQTtFQUFvQztBcEJtZ01wQzs7QW9CbGdNQTtFQUFvQztBcEJzZ01wQzs7QW9CcmdNQTtFQUFzQztBcEJ5Z010Qzs7QW9CeGdNQTtFQUFzQztBcEI0Z010Qzs7QW9CM2dNQTtFQUFtQztBcEIrZ01uQzs7QW9COWdNQTtFQUF3QztBcEJraE14Qzs7QW9CamhNQTtFQUF3QztBcEJxaE14Qzs7QW9CcGhNQTtFQUE0QztBcEJ3aE01Qzs7QW9CdmhNQTtFQUF3QztBcEIyaE14Qzs7QW9CMWhNQTtFQUFxQztBcEI4aE1yQzs7QW9CN2hNQTtFQUEyQztBcEJpaU0zQzs7QW9CaGlNQTtFQUEyQztBcEJvaU0zQzs7QW9CbmlNQTtFQUFzQztBcEJ1aU10Qzs7QW9CdGlNQTtFQUFrQztBcEIwaU1sQzs7QW9CemlNQTtFQUFrQztBcEI2aU1sQzs7QW9CNWlNQTtFQUFpQztBcEJnak1qQzs7QW9CL2lNQTtFQUE4QztBcEJtak05Qzs7QW9CbGpNQTtFQUEyQztBcEJzak0zQzs7QW9CcmpNQTtFQUE2QztBcEJ5ak03Qzs7QW9CeGpNQTtFQUFzQztBcEI0ak10Qzs7QW9CM2pNQTtFQUEwQztBcEIrak0xQzs7QW9COWpNQTtFQUEwQztBcEJra00xQzs7QW9CamtNQTtFQUF5QztBcEJxa016Qzs7QW9CcGtNQTtFQUEwQztBcEJ3a00xQzs7QW9CdmtNQTtFQUF3QztBcEIya014Qzs7QW9CMWtNQTtFQUE0QztBcEI4a001Qzs7QW9CN2tNQTtFQUFrQztBcEJpbE1sQzs7QW9CaGxNQTtFQUFxQztBcEJvbE1yQzs7QW9CbmxNQTtFQUErQztBcEJ1bE0vQzs7QW9CdGxNQTtFQUF1QztBcEIwbE12Qzs7QW9CemxNQTtFQUFrQztBcEI2bE1sQzs7QW9CNWxNQTtFQUFrQztBcEJnbU1sQzs7QW9CL2xNQTtFQUF5QztBcEJtbU16Qzs7QW9CbG1NQTtFQUF5QztBcEJzbU16Qzs7QW9Ccm1NQTtFQUEyQztBcEJ5bU0zQzs7QW9CeG1NQTtFQUEwQztBcEI0bU0xQzs7QW9CM21NQTtFQUF5QztBcEIrbU16Qzs7QW9COW1NQTtFQUF3QztBcEJrbk14Qzs7QW9Cam5NQTtFQUF5QztBcEJxbk16Qzs7QW9CcG5NQTtFQUF3QztBcEJ3bk14Qzs7QW9Cdm5NQTtFQUFxQztBcEIybk1yQzs7QW9CMW5NQTtFQUFvQztBcEI4bk1wQzs7QW9CN25NQTtFQUFpQztBcEJpb01qQzs7QW9CaG9NQTtFQUF3QztBcEJvb014Qzs7QW9Cbm9NQTtFQUFzQztBcEJ1b010Qzs7QW9CdG9NQTtFQUF5QztBcEIwb016Qzs7QW9Cem9NQTtFQUFrQztBcEI2b01sQzs7QW9CNW9NQTtFQUFzQztBcEJncE10Qzs7QW9CL29NQTtFQUE0QztBcEJtcE01Qzs7QW9CbHBNQTtFQUF3QztBcEJzcE14Qzs7QW9CcnBNQTtFQUFtQztBcEJ5cE1uQzs7QW9CeHBNQTtFQUFtQztBcEI0cE1uQzs7QW9CM3BNQTtFQUF3QztBcEIrcE14Qzs7QW9COXBNQTtFQUFzQztBcEJrcU10Qzs7QW9CanFNQTtFQUEwQztBcEJxcU0xQzs7QW9CcHFNQTtFQUFtQztBcEJ3cU1uQzs7QW9CdnFNQTtFQUFxQztBcEIycU1yQzs7QW9CMXFNQTtFQUF3QztBcEI4cU14Qzs7QW9CN3FNQTtFQUF5QztBcEJpck16Qzs7QW9CaHJNQTtFQUF3QztBcEJvck14Qzs7QW9CbnJNQTtFQUErQztBcEJ1ck0vQzs7QW9CdHJNQTtFQUFzQztBcEIwck10Qzs7QW9CenJNQTtFQUFtQztBcEI2ck1uQzs7QW9CNXJNQTtFQUFxQztBcEJnc01yQzs7QW9CL3JNQTtFQUE2QztBcEJtc003Qzs7QW9CbHNNQTtFQUFnQztBcEJzc01oQzs7QW9CcnNNQTtFQUFzQztBcEJ5c010Qzs7QW9CeHNNQTtFQUFxQztBcEI0c01yQzs7QW9CM3NNQTtFQUFxQztBcEIrc01yQzs7QW9COXNNQTtFQUF1QztBcEJrdE12Qzs7QW9CanRNQTtFQUFvQztBcEJxdE1wQzs7QW9CcHRNQTtFQUFtQztBcEJ3dE1uQzs7QW9CdnRNQTtFQUF3QztBcEIydE14Qzs7QW9CMXRNQTtFQUF3QztBcEI4dE14Qzs7QW9CN3RNQTtFQUFtQztBcEJpdU1uQzs7QW9CaHVNQTtFQUFxQztBcEJvdU1yQzs7QW9CbnVNQTtFQUFpQztBcEJ1dU1qQzs7QW9CdHVNQTtFQUF1QztBcEIwdU12Qzs7QW9CenVNQTtFQUFrQztBcEI2dU1sQzs7QW9CNXVNQTtFQUFvQztBcEJndk1wQzs7QW9CL3VNQTtFQUEwQztBcEJtdk0xQzs7QW9CbHZNQTtFQUFrQztBcEJzdk1sQzs7QW9CcnZNQTtFQUF3QztBcEJ5dk14Qzs7QW9CeHZNQTtFQUE0QztBcEI0dk01Qzs7QW9CM3ZNQTtFQUFtQztBcEIrdk1uQzs7QW9COXZNQTtFQUF5QztBcEJrd016Qzs7QW9CandNQTtFQUFvQztBcEJxd01wQzs7QW9CcHdNQTtFQUFzQztBcEJ3d010Qzs7QW9CdndNQTtFQUFpQztBcEIyd01qQzs7QW9CMXdNQTtFQUFxQztBcEI4d01yQzs7QW9CN3dNQTtFQUFvQztBcEJpeE1wQzs7QW9CaHhNQTtFQUFrQztBcEJveE1sQzs7QW9CbnhNQTtFQUF5QztBcEJ1eE16Qzs7QW9CdHhNQTtFQUFtQztBcEIweE1uQzs7QW9CenhNQTtFQUF1QztBcEI2eE12Qzs7QW9CNXhNQTtFQUEyQztBcEJneU0zQzs7QW9CL3hNQTtFQUErQztBcEJteU0vQzs7QW9CbHlNQTtFQUEwQztBcEJzeU0xQzs7QW9CcnlNQTtFQUFvQztBcEJ5eU1wQzs7QW9CeHlNQTtFQUF1QztBcEI0eU12Qzs7QW9CM3lNQTtFQUEyQztBcEIreU0zQzs7QW9COXlNQTtFQUFtRDtBcEJrek1uRDs7QW9CanpNQTtFQUFnRDtBcEJxek1oRDs7QW9CcHpNQTtFQUFtRDtBcEJ3ek1uRDs7QW9CdnpNQTtFQUFnRDtBcEIyek1oRDs7QW9CMXpNQTtFQUFtRDtBcEI4ek1uRDs7QW9CN3pNQTtFQUErQztBcEJpME0vQzs7QW9CaDBNQTtFQUE0QztBcEJvME01Qzs7QW9CbjBNQTtFQUErQztBcEJ1ME0vQzs7QW9CdDBNQTtFQUE0QztBcEIwME01Qzs7QW9CejBNQTtFQUErQztBcEI2ME0vQzs7QW9CNTBNQTtFQUFpQztBcEJnMU1qQzs7QW9CLzBNQTtFQUFnQztBcEJtMU1oQzs7QW9CbDFNQTtFQUFpQztBcEJzMU1qQzs7QW9CcjFNQTtFQUFrQztBcEJ5MU1sQzs7QW9CeDFNQTtFQUFtQztBcEI0MU1uQzs7QW9CMzFNQTtFQUFpQztBcEIrMU1qQzs7QW9COTFNQTtFQUFrQztBcEJrMk1sQzs7QW9CajJNQTtFQUFzQztBcEJxMk10Qzs7QW9CcDJNQTtFQUFpQztBcEJ3Mk1qQzs7QW9CdjJNQTtFQUFzQztBcEIyMk10Qzs7QW9CMTJNQTtFQUFrQztBcEI4Mk1sQzs7QW9CNzJNQTtFQUF1QztBcEJpM012Qzs7QW9CaDNNQTtFQUFxQztBcEJvM01yQzs7QW9CbjNNQTtFQUEyQztBcEJ1M00zQzs7QW9CdDNNQTtFQUFzQztBcEIwM010Qzs7QW9CejNNQTtFQUE2QztBcEI2M003Qzs7QW9CNTNNQTtFQUErQztBcEJnNE0vQzs7QW9CLzNNQTtFQUE2QztBcEJtNE03Qzs7QW9CbDRNQTtFQUE0QztBcEJzNE01Qzs7QW9CcjRNQTtFQUE0QztBcEJ5NE01Qzs7QW9CeDRNQTtFQUEyQztBcEI0NE0zQzs7QW9CMzRNQTtFQUEwQztBcEIrNE0xQzs7QW9COTRNQTtFQUFrQztBcEJrNU1sQzs7QW9CajVNQTtFQUF3QztBcEJxNU14Qzs7QW9CcDVNQTtFQUFxQztBcEJ3NU1yQzs7QW9CdjVNQTtFQUFpQztBcEIyNU1qQzs7QW9CMTVNQTtFQUF3QztBcEI4NU14Qzs7QW9CNzVNQTtFQUFzQztBcEJpNk10Qzs7QW9CaDZNQTtFQUF1QztBcEJvNk12Qzs7QW9CbjZNQTtFQUErQjtBcEJ1Nk0vQjs7QW9CdDZNQTtFQUFxQztBcEIwNk1yQzs7QW9CejZNQTtFQUFvQztBcEI2Nk1wQzs7QW9CNTZNQTtFQUF5QztBcEJnN016Qzs7QW9CLzZNQTtFQUEwQztBcEJtN00xQzs7QW9CbDdNQTtFQUFvQztBcEJzN01wQzs7QW9CcjdNQTtFQUFzQztBcEJ5N010Qzs7QW9CeDdNQTtFQUF3QztBcEI0N014Qzs7QW9CMzdNQTtFQUE4QztBcEIrN005Qzs7QW9COTdNQTtFQUE2QztBcEJrOE03Qzs7QW9CajhNQTtFQUE2QztBcEJxOE03Qzs7QW9CcDhNQTtFQUFnRDtBcEJ3OE1oRDs7QW9CdjhNQTtFQUF1RDtBcEIyOE12RDs7QW9CMThNQTtFQUFrQztBcEI4OE1sQzs7QW9CNzhNQTtFQUF3QztBcEJpOU14Qzs7QW9CaDlNQTtFQUF3QztBcEJvOU14Qzs7QW9CbjlNQTtFQUFzQztBcEJ1OU10Qzs7QW9CdDlNQTtFQUFzQztBcEIwOU10Qzs7QW9CejlNQTtFQUF5QztBcEI2OU16Qzs7QW9CNTlNQTtFQUE4QztBcEJnK005Qzs7QW9CLzlNQTtFQUE2QztBcEJtK003Qzs7QW9CbCtNQTtFQUFtQztBcEJzK01uQzs7QW9CcitNQTtFQUF1QztBcEJ5K012Qzs7QW9CeCtNQTtFQUFtQztBcEI0K01uQzs7QW9CMytNQTtFQUFrQztBcEIrK01sQzs7QW9COStNQTtFQUFrQztBcEJrL01sQzs7QW9Cai9NQTtFQUF5QztBcEJxL016Qzs7QW9CcC9NQTtFQUEwQztBcEJ3L00xQzs7QW9Cdi9NQTtFQUEwQztBcEIyL00xQzs7QW9CMS9NQTtFQUF5QztBcEI4L016Qzs7QW9CNy9NQTtFQUFpQztBcEJpZ05qQzs7QW9CaGdOQTtFQUF1QztBcEJvZ052Qzs7QW9CbmdOQTtFQUFpQztBcEJ1Z05qQzs7QW9CdGdOQTtFQUFzQztBcEIwZ050Qzs7QW9CemdOQTtFQUFrRDtBcEI2Z05sRDs7QW9CNWdOQTtFQUF3QztBcEJnaE54Qzs7QW9CL2dOQTtFQUFrQztBcEJtaE5sQzs7QW9CbGhOQTtFQUF1QztBcEJzaE52Qzs7QW9CcmhOQTtFQUFzQztBcEJ5aE50Qzs7QW9CeGhOQTtFQUFtQztBcEI0aE5uQzs7QW9CM2hOQTtFQUF5QztBcEIraE56Qzs7QW9COWhOQTtFQUE2QztBcEJraU43Qzs7QW9CamlOQTtFQUErQztBcEJxaU4vQzs7QW9CcGlOQTtFQUFzQztBcEJ3aU50Qzs7QW9CdmlOQTtFQUEwQztBcEIyaU4xQzs7QW9CMWlOQTtFQUFvQztBcEI4aU5wQzs7QW9CN2lOQTtFQUFrQztBcEJpak5sQzs7QW9CaGpOQTtFQUFrQztBcEJvak5sQzs7QW9CbmpOQTtFQUF1QztBcEJ1ak52Qzs7QW9CdGpOQTtFQUFrQztBcEIwak5sQzs7QW9CempOQTtFQUF1QztBcEI2ak52Qzs7QW9CNWpOQTtFQUFvQztBcEJna05wQzs7QW9CL2pOQTtFQUFvQztBcEJta05wQzs7QW9CbGtOQTtFQUE2QztBcEJza043Qzs7QW9CcmtOQTtFQUFzQztBcEJ5a050Qzs7QW9CeGtOQTtFQUF5QztBcEI0a056Qzs7QW9CM2tOQTtFQUEwQztBcEIra04xQzs7QW9COWtOQTtFQUE2QztBcEJrbE43Qzs7QW9CamxOQTtFQUErQztBcEJxbE4vQzs7QW9CcGxOQTtFQUErQztBcEJ3bE4vQzs7QW9CdmxOQTtFQUFvQztBcEIybE5wQzs7QW9CMWxOQTtFQUFrQztBcEI4bE5sQzs7QW9CN2xOQTtFQUFpQztBcEJpbU5qQzs7QW9CaG1OQTtFQUF3QztBcEJvbU54Qzs7QW9Cbm1OQTtFQUE0QztBcEJ1bU41Qzs7QW9CdG1OQTtFQUF3QztBcEIwbU54Qzs7QW9Cem1OQTtFQUEwQztBcEI2bU4xQzs7QW9CNW1OQTtFQUEwQztBcEJnbk4xQzs7QW9CL21OQTtFQUEwQztBcEJtbk4xQzs7QW9CbG5OQTtFQUE4QztBcEJzbk45Qzs7QW9Ccm5OQTtFQUFrQztBcEJ5bk5sQzs7QW9CeG5OQTtFQUFzQztBcEI0bk50Qzs7QW9CM25OQTtFQUEwQztBcEIrbk4xQzs7QW9COW5OQTtFQUE4QztBcEJrb045Qzs7QW9Cam9OQTtFQUF1QztBcEJxb052Qzs7QW9CcG9OQTtFQUEyQztBcEJ3b04zQzs7QW9Cdm9OQTtFQUEyQztBcEIyb04zQzs7QW9CMW9OQTtFQUFpQztBcEI4b05qQzs7QW9CN29OQTtFQUFxQztBcEJpcE5yQzs7QW9CaHBOQTtFQUEyQztBcEJvcE4zQzs7QW9CbnBOQTtFQUEyQztBcEJ1cE4zQzs7QW9CdHBOQTtFQUF1QztBcEIwcE52Qzs7QW9CenBOQTtFQUFzQztBcEI2cE50Qzs7QW9CNXBOQTtFQUFrQztBcEJncU5sQzs7QW9CL3BOQTtFQUFtQztBcEJtcU5uQzs7QW9CbHFOQTtFQUFxQztBcEJzcU5yQzs7QW9CcnFOQTtFQUEyQztBcEJ5cU4zQzs7QW9CeHFOQTtFQUFtQztBcEI0cU5uQzs7QW9CM3FOQTtFQUF1QztBcEIrcU52Qzs7QW9COXFOQTtFQUFrQztBcEJrck5sQzs7QW9CanJOQTtFQUE0QztBcEJxck41Qzs7QW9CcHJOQTtFQUF3QztBcEJ3ck54Qzs7QW9CdnJOQTtFQUEwQztBcEIyck4xQzs7QW9CMXJOQTtFQUEwQztBcEI4ck4xQzs7QW9CN3JOQTtFQUF5QztBcEJpc056Qzs7QW9CaHNOQTtFQUF5QztBcEJvc056Qzs7QW9CbnNOQTtFQUF1QztBcEJ1c052Qzs7QW9CdHNOQTtFQUF1QztBcEIwc052Qzs7QW9CenNOQTtFQUFvQztBcEI2c05wQzs7QW9CNXNOQTtFQUFtQztBcEJndE5uQzs7QW9CL3NOQTtFQUFnQztBcEJtdE5oQzs7QW9CbHROQTtFQUFtQztBcEJzdE5uQzs7QW9CcnROQTtFQUEwQztBcEJ5dE4xQzs7QW9CeHROQTtFQUFtQztBcEI0dE5uQzs7QW9CM3ROQTtFQUFzQztBcEIrdE50Qzs7QW9COXROQTtFQUFtQztBcEJrdU5uQzs7QW9CanVOQTtFQUErQjtBcEJxdU4vQjs7QW9CcHVOQTtFQUFtQztBcEJ3dU5uQzs7QW9CdnVOQTtFQUFxQztBcEIydU5yQzs7QW9CMXVOQTtFQUFxQztBcEI4dU5yQzs7QW9CN3VOQTtFQUFtQztBcEJpdk5uQzs7QW9CaHZOQTtFQUFvQztBcEJvdk5wQzs7QW9CbnZOQTtFQUEyQztBcEJ1dk4zQzs7QW9CdHZOQTtFQUF1QztBcEIwdk52Qzs7QW9CenZOQTtFQUFrQztBcEI2dk5sQzs7QW9CNXZOQTtFQUFpQztBcEJnd05qQzs7QW9CL3ZOQTtFQUFtQztBcEJtd05uQzs7QW9CbHdOQTtFQUFnQztBcEJzd05oQzs7QW9CcndOQTtFQUFxQztBcEJ5d05yQzs7QW9CeHdOQTtFQUFrQztBcEI0d05sQzs7QW9CM3dOQTtFQUFvQztBcEIrd05wQzs7QW9COXdOQTtFQUFxQztBcEJreE5yQzs7QW9CanhOQTtFQUEyQztBcEJxeE4zQzs7QW9CcHhOQTtFQUFzQztBcEJ3eE50Qzs7QW9CdnhOQTtFQUFzQztBcEIyeE50Qzs7QW9CMXhOQTtFQUFpQztBcEI4eE5qQzs7QW9CN3hOQTtFQUFxQztBcEJpeU5yQzs7QW9CaHlOQTtFQUFvQztBcEJveU5wQzs7QW9CbnlOQTtFQUFrQztBcEJ1eU5sQzs7QW9CdHlOQTtFQUF3QztBcEIweU54Qzs7QW9CenlOQTtFQUFrQztBcEI2eU5sQzs7QW9CNXlOQTtFQUE2QztBcEJnek43Qzs7QW9CL3lOQTtFQUF1QztBcEJtek52Qzs7QW9CbHpOQTtFQUFtQztBcEJzek5uQzs7QW9CcnpOQTtFQUFtQztBcEJ5ek5uQzs7QW9CeHpOQTtFQUF1QztBcEI0ek52Qzs7QW9CM3pOQTtFQUFxQztBcEIrek5yQzs7QW9COXpOQTtFQUFvQztBcEJrME5wQzs7QW9CajBOQTtFQUFtQztBcEJxME5uQzs7QW9CcDBOQTtFQUFnQztBcEJ3ME5oQzs7QW9CdjBOQTtFQUFnQztBcEIyME5oQzs7QW9CMTBOQTtFQUFzQztBcEI4ME50Qzs7QW9CNzBOQTtFQUF1QztBcEJpMU52Qzs7QW9CaDFOQTtFQUF1QztBcEJvMU52Qzs7QW9CbjFOQTtFQUFpQztBcEJ1MU5qQzs7QW9CdDFOQTtFQUF1QztBcEIwMU52Qzs7QW9CejFOQTtFQUFxQztBcEI2MU5yQzs7QW9CNTFOQTtFQUEyQztBcEJnMk4zQzs7QW9CLzFOQTtFQUEyQztBcEJtMk4zQzs7QW9CbDJOQTtFQUF1QztBcEJzMk52Qzs7QW9CcjJOQTtFQUF1QztBcEJ5Mk52Qzs7QW9CeDJOQTtFQUF3QztBcEI0Mk54Qzs7QW9CMzJOQTtFQUF1QztBcEIrMk52Qzs7QW9COTJOQTtFQUFxQztBcEJrM05yQzs7QW9CajNOQTtFQUF3QztBcEJxM054Qzs7QW9CcDNOQTtFQUF1QztBcEJ3M052Qzs7QW9CdjNOQTtFQUFzQztBcEIyM050Qzs7QW9CMTNOQTtFQUF5QztBcEI4M056Qzs7QW9CNzNOQTtFQUEwQztBcEJpNE4xQzs7QW9CaDROQTtFQUEwQztBcEJvNE4xQzs7QW9CbjROQTtFQUF5QztBcEJ1NE56Qzs7QW9CdDROQTtFQUF5QztBcEIwNE56Qzs7QW9CejROQTtFQUFzQztBcEI2NE50Qzs7QW9CNTROQTtFQUFvQztBcEJnNU5wQzs7QW9CLzROQTtFQUF5QztBcEJtNU56Qzs7QW9CbDVOQTtFQUF1QztBcEJzNU52Qzs7QW9CcjVOQTtFQUF1QztBcEJ5NU52Qzs7QW9CeDVOQTtFQUF1QztBcEI0NU52Qzs7QW9CMzVOQTtFQUF1QztBcEIrNU52Qzs7QW9COTVOQTtFQUFzQztBcEJrNk50Qzs7QW9CajZOQTtFQUF1QztBcEJxNk52Qzs7QW9CcDZOQTtFQUF3QztBcEJ3Nk54Qzs7QW9CdjZOQTtFQUF3QztBcEIyNk54Qzs7QW9CMTZOQTtFQUF1QztBcEI4Nk52Qzs7QW9CNzZOQTtFQUFxQztBcEJpN05yQzs7QW9CaDdOQTtFQUFxQztBcEJvN05yQzs7QW9CbjdOQTtFQUF1QztBcEJ1N052Qzs7QW9CdDdOQTtFQUF3QztBcEIwN054Qzs7QW9CejdOQTtFQUF1QztBcEI2N052Qzs7QW9CNTdOQTtFQUFrQztBcEJnOE5sQzs7QW9CLzdOQTtFQUF3QztBcEJtOE54Qzs7QW9CbDhOQTtFQUFzQztBcEJzOE50Qzs7QW9CcjhOQTtFQUF3QztBcEJ5OE54Qzs7QW9CeDhOQTtFQUEwQztBcEI0OE4xQzs7QW9CMzhOQTtFQUF3QztBcEIrOE54Qzs7QW9COThOQTtFQUFpQztBcEJrOU5qQzs7QW9CajlOQTtFQUFxQztBcEJxOU5yQzs7QW9CcDlOQTtFQUF5QztBcEJ3OU56Qzs7QW9CdjlOQTtFQUEwQztBcEIyOU4xQzs7QW9CMTlOQTtFQUEwQztBcEI4OU4xQzs7QW9CNzlOQTtFQUFxQztBcEJpK05yQzs7QW9CaCtOQTtFQUF5QztBcEJvK056Qzs7QW9CbitOQTtFQUFtQztBcEJ1K05uQzs7QW9CdCtOQTtFQUFtQztBcEIwK05uQzs7QW9CeitOQTtFQUF5QztBcEI2K056Qzs7QW9CNStOQTtFQUEyQztBcEJnL04zQzs7QW9CLytOQTtFQUEwQztBcEJtL04xQzs7QW9CbC9OQTtFQUFrQztBcEJzL05sQzs7QW9Cci9OQTtFQUF5QztBcEJ5L056Qzs7QW9CeC9OQTtFQUF1QztBcEI0L052Qzs7QW9CMy9OQTtFQUFpQztBcEIrL05qQzs7QW9COS9OQTtFQUF5QztBcEJrZ096Qzs7QW9CamdPQTtFQUFnQztBcEJxZ09oQzs7QW9CcGdPQTtFQUFvQztBcEJ3Z09wQzs7QW9CdmdPQTtFQUFtQztBcEIyZ09uQzs7QW9CMWdPQTtFQUEwQztBcEI4Z08xQzs7QW9CN2dPQTtFQUFpQztBcEJpaE9qQzs7QW9CaGhPQTtFQUFrQztBcEJvaE9sQzs7QW9CbmhPQTtFQUFrQztBcEJ1aE9sQzs7QW9CdGhPQTtFQUFrQztBcEIwaE9sQzs7QW9CemhPQTtFQUF1QztBcEI2aE92Qzs7QW9CNWhPQTtFQUF3QztBcEJnaU94Qzs7QW9CL2hPQTtFQUFtQztBcEJtaU9uQzs7QW9CbGlPQTtFQUFrQztBcEJzaU9sQzs7QW9CcmlPQTtFQUF5QztBcEJ5aU96Qzs7QW9CeGlPQTtFQUFvQztBcEI0aU9wQzs7QW9CM2lPQTtFQUFpQztBcEIraU9qQzs7QW9COWlPQTtFQUFtQztBcEJrak9uQzs7QW9CampPQTtFQUFrQztBcEJxak9sQzs7QW9CcGpPQTtFQUF3QztBcEJ3ak94Qzs7QW9CdmpPQTtFQUFvQztBcEIyak9wQzs7QW9CMWpPQTtFQUErQjtBcEI4ak8vQjs7QW9CN2pPQTtFQUFnQztBcEJpa09oQzs7QW9CaGtPQTtFQUFzQztBcEJva090Qzs7QW9CbmtPQTtFQUFvQztBcEJ1a09wQzs7QW9CdGtPQTtFQUE0QztBcEIwa081Qzs7QW9CemtPQTtFQUFtQztBcEI2a09uQzs7QW9CNWtPQTtFQUF3QztBcEJnbE94Qzs7QW9CL2tPQTtFQUF3QztBcEJtbE94Qzs7QW9CbGxPQTtFQUF1QztBcEJzbE92Qzs7QW9CcmxPQTtFQUF5QztBcEJ5bE96Qzs7QW9CeGxPQTtFQUFzQztBcEI0bE90Qzs7QW9CM2xPQTtFQUFxQztBcEIrbE9yQzs7QW9COWxPQTtFQUFxQztBcEJrbU9yQzs7QW9Cam1PQTtFQUF5QztBcEJxbU96Qzs7QW9CcG1PQTtFQUFrQztBcEJ3bU9sQzs7QW9Cdm1PQTtFQUEwQztBcEIybU8xQzs7QW9CMW1PQTtFQUFtQztBcEI4bU9uQzs7QW9CN21PQTtFQUEwQztBcEJpbk8xQzs7QW9CaG5PQTtFQUFvQztBcEJvbk9wQzs7QW9Cbm5PQTtFQUFtQztBcEJ1bk9uQzs7QW9CdG5PQTtFQUFpQztBcEIwbk9qQzs7QW9Cem5PQTtFQUF1QztBcEI2bk92Qzs7QW9CNW5PQTtFQUFzQztBcEJnb090Qzs7QW9CL25PQTtFQUEwQztBcEJtb08xQzs7QW9CbG9PQTtFQUFtQztBcEJzb09uQzs7QW9Ccm9PQTtFQUFrQztBcEJ5b09sQzs7QW9CeG9PQTtFQUE2QztBcEI0b083Qzs7QW9CM29PQTtFQUEwQztBcEIrb08xQzs7QW9COW9PQTtFQUFnRDtBcEJrcE9oRDs7QW9CanBPQTtFQUFrQztBcEJxcE9sQzs7QW9CcHBPQTtFQUF3QztBcEJ3cE94Qzs7QW9CdnBPQTtFQUF1QztBcEIycE92Qzs7QW9CMXBPQTtFQUFzQztBcEI4cE90Qzs7QW9CN3BPQTtFQUF3QztBcEJpcU94Qzs7QW9CaHFPQTtFQUEwQztBcEJvcU8xQzs7QW9CbnFPQTtFQUFxQztBcEJ1cU9yQzs7QW9CdHFPQTtFQUEwQztBcEIwcU8xQzs7QW9CenFPQTtFQUFpQztBcEI2cU9qQzs7QW9CNXFPQTtFQUFtQztBcEJnck9uQzs7QW9CL3FPQTtFQUF5QztBcEJtck96Qzs7QW9CbHJPQTtFQUFtQztBcEJzck9uQzs7QW9CcnJPQTtFQUFrQztBcEJ5ck9sQzs7QW9CeHJPQTtFQUFtQztBcEI0ck9uQzs7QW9CM3JPQTtFQUEyQztBcEIrck8zQzs7QW9COXJPQTtFQUFtQztBcEJrc09uQzs7QW9CanNPQTtFQUFrQztBcEJxc09sQzs7QW9CcHNPQTtFQUFxQztBcEJ3c09yQzs7QW9CdnNPQTtFQUE0QztBcEIyc081Qzs7QW9CMXNPQTtFQUFrQztBcEI4c09sQzs7QW9CN3NPQTtFQUF1QztBcEJpdE92Qzs7QW9CaHRPQTtFQUFvQztBcEJvdE9wQzs7QW9CbnRPQTtFQUFrQztBcEJ1dE9sQzs7QW9CdHRPQTtFQUFpQztBcEIwdE9qQzs7QW9CenRPQTtFQUFtQztBcEI2dE9uQzs7QW9CNXRPQTtFQUFtQztBcEJndU9uQzs7QW9CL3RPQTtFQUF1QztBcEJtdU92Qzs7QW9CbHVPQTtFQUF3QztBcEJzdU94Qzs7QW9CcnVPQTtFQUFpQztBcEJ5dU9qQzs7QW9CeHVPQTtFQUF5QztBcEI0dU96Qzs7QW9CM3VPQTtFQUF5QztBcEIrdU96Qzs7QW9COXVPQTtFQUFtQztBcEJrdk9uQzs7QW9CanZPQTtFQUF1QztBcEJxdk92Qzs7QW9CcHZPQTtFQUF5QztBcEJ3dk96Qzs7QW9CdnZPQTtFQUF5QztBcEIydk96Qzs7QW9CMXZPQTtFQUE4QztBcEI4dk85Qzs7QW9CN3ZPQTtFQUE0QztBcEJpd081Qzs7QW9CaHdPQTtFQUE0QztBcEJvd081Qzs7QW9CbndPQTtFQUEyQztBcEJ1d08zQzs7QW9CdHdPQTtFQUFvQztBcEIwd09wQzs7QW9CendPQTtFQUFxQztBcEI2d09yQzs7QW9CNXdPQTtFQUF3QztBcEJneE94Qzs7QW9CL3dPQTtFQUF1QztBcEJteE92Qzs7QW9CbHhPQTtFQUEyQztBcEJzeE8zQzs7QW9CcnhPQTtFQUFnQztBcEJ5eE9oQzs7QW9CeHhPQTtFQUFpRDtBcEI0eE9qRDs7QW9CM3hPQTtFQUFpQztBcEIreE9qQzs7QW9COXhPQTtFQUFnRDtBcEJreU9oRDs7QW9CanlPQTtFQUFxQztBcEJxeU9yQzs7QW9CcHlPQTtFQUFzQztBcEJ3eU90Qzs7QW9CdnlPQTtFQUE2QztBcEIyeU83Qzs7QW9CMXlPQTtFQUF1QztBcEI4eU92Qzs7QW9CN3lPQTtFQUF1QztBcEJpek92Qzs7QW9CaHpPQTtFQUFvQztBcEJvek9wQzs7QW9CbnpPQTtFQUFvQztBcEJ1ek9wQzs7QW9CdHpPQTtFQUFtQztBcEIwek9uQzs7QW9CenpPQTtFQUFtQztBcEI2ek9uQzs7QW9CNXpPQTtFQUFrQztBcEJnME9sQzs7QW9CL3pPQTtFQUFpQztBcEJtME9qQzs7QW9CbDBPQTtFQUFpQztBcEJzME9qQzs7QW9CcjBPQTtFQUF3QztBcEJ5ME94Qzs7QW9CeDBPQTtFQUF5QztBcEI0ME96Qzs7QW9CMzBPQTtFQUFrQztBcEIrME9sQzs7QW9COTBPQTtFQUFtQztBcEJrMU9uQzs7QW9CajFPQTtFQUFtQztBcEJxMU9uQzs7QW9CcDFPQTtFQUFpRDtBcEJ3MU9qRDs7QW9CdjFPQTtFQUFpQztBcEIyMU9qQzs7QW9CMTFPQTtFQUFpQztBcEI4MU9qQzs7QW9CNzFPQTtFQUFxQztBcEJpMk9yQzs7QW9CaDJPQTtFQUFxQztBcEJvMk9yQzs7QW9CbjJPQTtFQUFrQztBcEJ1Mk9sQzs7QW9CdDJPQTtFQUFvQztBcEIwMk9wQzs7QW9CejJPQTtFQUEyQztBcEI2Mk8zQzs7QW9CNTJPQTtFQUFrQztBcEJnM09sQzs7QXFCcG5UQTtFSDBCRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FsQjhsVEY7O0FrQnBsVEU7RUFFRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QWxCc2xUSjs7QXNCM29UQTs7O0VBQUE7QUFNQTtFQUNFO0VBQ0E7RUFDQTtFQUNBLGtCVExxQjtFU01yQjtFQUNBO0F0QjRvVEY7QXNCcm9UQTtFQUNFO0VBQ0E7QXRCdW9URjs7QXVCNXBUQTs7O0VBQUE7QUFNQTtFQUNFO0VBQ0E7RUFDQTtFQUNBLGtCVkxxQjtFVU1yQjtFQUNBO0F2QjZwVEY7QXVCdHBUQTs7RUFFRTtFQUNBO0F2QndwVEY7O0F3QjlxVEE7OztFQUFBO0FBTUE7RUFDRTtFQUNBO0VBQ0E7RUFDQSxrQlhMcUI7RVdNckI7RUFDQTtBeEIrcVRGO0F3QnhxVEE7RUFDRTtFQUNBO0F4QjBxVEY7O0F5QjdyVEE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtBekJnc1RGO0F5QjdyVEE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtBekIrclRGO0F5QjVyVEE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtBekI4clRGO0F5QjNyVEE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtBekI2clRGO0EwQnR0VEE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtBMUJ3dFRGO0EwQnJ0VEE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtBMUJ1dFRGO0EwQnB0VEE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtBMUJzdFRGO0EwQm50VEE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtBMUJxdFRGO0EyQmh2VEE7QUNDSTtFQ0NBO1VBQUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7QTdCaXZUSjtBNEJ0dlRRO0VBR0k7QTVCc3ZUWjtBNEJudlRRO0VBRUk7VUFBQTtFQUNBO0E1Qm92VFo7O0E0Qmh2VEk7O0VBRUk7QTVCbXZUUjs7QTRCaHZUSTtFQ3BCQTtVQUFBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0E3QnV3VEo7O0E0QnB2VEk7Ozs7Ozs7Ozs7Ozs7RUFhSTtBNUJ1dlRSOztBNEJwdlRJOztFQUVJO0E1QnV2VFI7O0E0QnB2VEk7O0VBRUk7QTVCdXZUUjtBNEJydlRROzs7RUFFSTtBNUJ3dlRaOztBNEJwdlRJO0VBQ0k7RUFDQTtBNUJ1dlRSOztBNEJwdlRJO0VBQ0k7RUFDQTtBNUJ1dlRSOztBNEJwdlRJO0VBQ0k7QTVCdXZUUjs7QThCeHpUSTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0E5QjJ6VFI7QThCeHpUSTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0E5QjB6VFI7QThCdnpUSTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0E5Qnl6VFI7QThCdHpUSTtFQUNJLGVoRGRpQjtBa0JzMFR6Qjs7QThCcnpUSTtFdkN6QkE7RUFVQTtFQVVBO0V1Q1NJO0VBQ0Esc0IxQjlCYztFMEIrQmQsYzFCekJlO0UwQjBCZiw4QkNyQ2M7QS9CNjFUdEI7O0E4QnJ6VEk7RUFDSTtFQUNBO0E5Qnd6VFI7O0E4QnB6VFE7RXZDL0JKO0VBVkE7RUFvQkE7RXVDeUJRO0VBQ0EsYzFCeENXO0FKKzFUdkI7O0E4QjV6VFE7RXZDL0JKO0VBVkE7RUFvQkE7RXVDeUJRO0VBQ0EsYzFCeENXO0FKdTJUdkI7O0E4QnAwVFE7RXZDL0JKO0VBVkE7RUFvQkE7RXVDeUJRO0VBQ0EsYzFCeENXO0FKKzJUdkI7O0E4QjUwVFE7RXZDL0JKO0VBVkE7RUFvQkE7RXVDeUJRO0VBQ0EsYzFCeENXO0FKdTNUdkI7O0E4QnAxVFE7RXZDL0JKO0VBVkE7RUFvQkE7RXVDeUJRO0VBQ0EsYzFCeENXO0FKKzNUdkI7O0E4QjUxVFE7RXZDL0JKO0VBVkE7RUFvQkE7RXVDeUJRO0VBQ0EsYzFCeENXO0FKdTRUdkI7O0E4QjMxVEk7RUFDSSxjMUJ2RFk7RTBCd0RaO0E5QjgxVFI7QThCNTFUUTtFQUNJLGMxQjVEUztBSjA1VHJCOztBOEIxMVRJOztFQUVJO0E5QjYxVFI7O0E4QjExVEk7OztFQUdJO0E5QjYxVFI7O0FIajZUSTtFQUNJO0VBQ0E7RUFDQTtBR282VFI7QThCNzFUUTtFQUNJO0VBQ0E7QTlCKzFUWjs7QThCMzFUSTtFQUNJO0E5QjgxVFI7QUxuNVRJO0VtQ29EQTtJdkMvRUE7RVNrN1RGO0FBQ0Y7O0E4QjUxVEk7RXZDdkZBO0FTdTdUSjs7QThCNTFUSTs7O0VBR0k7QTlCKzFUUjs7QThCNTFUSTtFQUNJO0E5QisxVFI7O0EyQm44VEk7RUFDSTtFQUNBO0VBQ0EsaUJLTmlCO0VMT2pCO0VBQ0E7QTNCczhUUjtBMkJwOFRRO0VBQ0k7QTNCczhUWjtBMkJuOFRRO0VBQ0k7QTNCcThUWjtBMkJuOFRRO0VBQ0k7QTNCcThUWjtBTGg2VEk7RWdDdENJO0lBR1E7RTNCdThUZDtBQUNGOztBSHg5VEk7RUFDSTtFQUNBO0VBQ0E7QUcyOVRSO0EyQnQ4VFE7RUFDSTtFQUNBO0VBQ0E7TUFBQTtVQUFBO0VBQ0E7TUFBQTtBM0J3OFRaO0FMeDhUSTtFZ0NNZ0I7SUFDSTtJQUNBO0UzQnE4VHRCO0UyQnY4VGtCO0lBQ0k7SUFDQTtFM0J5OFR0QjtFMkIzOFRrQjtJQUNJO0lBQ0E7RTNCNjhUdEI7RTJCLzhUa0I7SUFDSTtJQUNBO0UzQmk5VHRCO0UyQm45VGtCO0lBQ0k7SUFDQTtFM0JxOVR0QjtFMkJ2OVRrQjtJQUNJO0lBQ0E7RTNCeTlUdEI7RTJCMzlUa0I7SUFDSTtJQUNBO0UzQjY5VHRCO0UyQi85VGtCO0lBQ0k7SUFDQTtFM0JpK1R0QjtFMkJuK1RrQjtJQUNJO0lBQ0E7RTNCcStUdEI7RTJCditUa0I7SUFDSTtJQUNBO0UzQnkrVHRCO0UyQjMrVGtCO0lBQ0k7SUFDQTtFM0I2K1R0QjtFMkIvK1RrQjtJQUNJO0lBQ0E7RTNCaS9UdEI7RTJCNytUYztJQUNJO0lBQ0E7RTNCKytUbEI7QUFDRjtBTHYrVEk7RWdDTFk7SUFDSTtRQUFBO1lBQUE7RTNCKytUbEI7RTJCNStUYztJQUNJO1FBQUE7WUFBQTtFM0I4K1RsQjtBQUNGO0FMdGdVSTtFZ0NNZ0I7SUFDSTtJQUNBO0UzQm1nVXRCO0UyQnJnVWtCO0lBQ0k7SUFDQTtFM0J1Z1V0QjtFMkJ6Z1VrQjtJQUNJO0lBQ0E7RTNCMmdVdEI7RTJCN2dVa0I7SUFDSTtJQUNBO0UzQitnVXRCO0UyQmpoVWtCO0lBQ0k7SUFDQTtFM0JtaFV0QjtFMkJyaFVrQjtJQUNJO0lBQ0E7RTNCdWhVdEI7RTJCemhVa0I7SUFDSTtJQUNBO0UzQjJoVXRCO0UyQjdoVWtCO0lBQ0k7SUFDQTtFM0IraFV0QjtFMkJqaVVrQjtJQUNJO0lBQ0E7RTNCbWlVdEI7RTJCcmlVa0I7SUFDSTtJQUNBO0UzQnVpVXRCO0UyQnppVWtCO0lBQ0k7SUFDQTtFM0IyaVV0QjtFMkI3aVVrQjtJQUNJO0lBQ0E7RTNCK2lVdEI7RTJCM2lVYztJQUNJO0lBQ0E7RTNCNmlVbEI7QUFDRjtBTHJpVUk7RWdDTFk7SUFDSTtRQUFBO1lBQUE7RTNCNmlVbEI7RTJCMWlVYztJQUNJO1FBQUE7WUFBQTtFM0I0aVVsQjtBQUNGO0FMcGtVSTtFZ0NNZ0I7SUFDSTtJQUNBO0UzQmlrVXRCO0UyQm5rVWtCO0lBQ0k7SUFDQTtFM0Jxa1V0QjtFMkJ2a1VrQjtJQUNJO0lBQ0E7RTNCeWtVdEI7RTJCM2tVa0I7SUFDSTtJQUNBO0UzQjZrVXRCO0UyQi9rVWtCO0lBQ0k7SUFDQTtFM0JpbFV0QjtFMkJubFVrQjtJQUNJO0lBQ0E7RTNCcWxVdEI7RTJCdmxVa0I7SUFDSTtJQUNBO0UzQnlsVXRCO0UyQjNsVWtCO0lBQ0k7SUFDQTtFM0I2bFV0QjtFMkIvbFVrQjtJQUNJO0lBQ0E7RTNCaW1VdEI7RTJCbm1Va0I7SUFDSTtJQUNBO0UzQnFtVXRCO0UyQnZtVWtCO0lBQ0k7SUFDQTtFM0J5bVV0QjtFMkIzbVVrQjtJQUNJO0lBQ0E7RTNCNm1VdEI7RTJCem1VYztJQUNJO0lBQ0E7RTNCMm1VbEI7QUFDRjtBTG5tVUk7RWdDTFk7SUFDSTtRQUFBO1lBQUE7RTNCMm1VbEI7RTJCeG1VYztJQUNJO1FBQUE7WUFBQTtFM0IwbVVsQjtBQUNGO0FMbG9VSTtFZ0NNZ0I7SUFDSTtJQUNBO0UzQituVXRCO0UyQmpvVWtCO0lBQ0k7SUFDQTtFM0Jtb1V0QjtFMkJyb1VrQjtJQUNJO0lBQ0E7RTNCdW9VdEI7RTJCem9Va0I7SUFDSTtJQUNBO0UzQjJvVXRCO0UyQjdvVWtCO0lBQ0k7SUFDQTtFM0Irb1V0QjtFMkJqcFVrQjtJQUNJO0lBQ0E7RTNCbXBVdEI7RTJCcnBVa0I7SUFDSTtJQUNBO0UzQnVwVXRCO0UyQnpwVWtCO0lBQ0k7SUFDQTtFM0IycFV0QjtFMkI3cFVrQjtJQUNJO0lBQ0E7RTNCK3BVdEI7RTJCanFVa0I7SUFDSTtJQUNBO0UzQm1xVXRCO0UyQnJxVWtCO0lBQ0k7SUFDQTtFM0J1cVV0QjtFMkJ6cVVrQjtJQUNJO0lBQ0E7RTNCMnFVdEI7RTJCdnFVYztJQUNJO0lBQ0E7RTNCeXFVbEI7QUFDRjtBTGpxVUk7RWdDTFk7SUFDSTtRQUFBO1lBQUE7RTNCeXFVbEI7RTJCdHFVYztJQUNJO1FBQUE7WUFBQTtFM0J3cVVsQjtBQUNGO0FMaHNVSTtFZ0NNZ0I7SUFDSTtJQUNBO0UzQjZyVXRCO0UyQi9yVWtCO0lBQ0k7SUFDQTtFM0Jpc1V0QjtFMkJuc1VrQjtJQUNJO0lBQ0E7RTNCcXNVdEI7RTJCdnNVa0I7SUFDSTtJQUNBO0UzQnlzVXRCO0UyQjNzVWtCO0lBQ0k7SUFDQTtFM0I2c1V0QjtFMkIvc1VrQjtJQUNJO0lBQ0E7RTNCaXRVdEI7RTJCbnRVa0I7SUFDSTtJQUNBO0UzQnF0VXRCO0UyQnZ0VWtCO0lBQ0k7SUFDQTtFM0J5dFV0QjtFMkIzdFVrQjtJQUNJO0lBQ0E7RTNCNnRVdEI7RTJCL3RVa0I7SUFDSTtJQUNBO0UzQml1VXRCO0UyQm51VWtCO0lBQ0k7SUFDQTtFM0JxdVV0QjtFMkJ2dVVrQjtJQUNJO0lBQ0E7RTNCeXVVdEI7RTJCcnVVYztJQUNJO0lBQ0E7RTNCdXVVbEI7QUFDRjtBTC90VUk7RWdDTFk7SUFDSTtRQUFBO1lBQUE7RTNCdXVVbEI7RTJCcHVVYztJQUNJO1FBQUE7WUFBQTtFM0JzdVVsQjtBQUNGO0FMOXZVSTtFZ0NNZ0I7SUFDSTtJQUNBO0UzQjJ2VXRCO0UyQjd2VWtCO0lBQ0k7SUFDQTtFM0IrdlV0QjtFMkJqd1VrQjtJQUNJO0lBQ0E7RTNCbXdVdEI7RTJCcndVa0I7SUFDSTtJQUNBO0UzQnV3VXRCO0UyQnp3VWtCO0lBQ0k7SUFDQTtFM0Iyd1V0QjtFMkI3d1VrQjtJQUNJO0lBQ0E7RTNCK3dVdEI7RTJCanhVa0I7SUFDSTtJQUNBO0UzQm14VXRCO0UyQnJ4VWtCO0lBQ0k7SUFDQTtFM0J1eFV0QjtFMkJ6eFVrQjtJQUNJO0lBQ0E7RTNCMnhVdEI7RTJCN3hVa0I7SUFDSTtJQUNBO0UzQit4VXRCO0UyQmp5VWtCO0lBQ0k7SUFDQTtFM0JteVV0QjtFMkJyeVVrQjtJQUNJO0lBQ0E7RTNCdXlVdEI7RTJCbnlVYztJQUNJO0lBQ0E7RTNCcXlVbEI7QUFDRjtBTDd4VUk7RWdDTFk7SUFDSTtRQUFBO1lBQUE7RTNCcXlVbEI7RTJCbHlVYztJQUNJO1FBQUE7WUFBQTtFM0JveVVsQjtBQUNGO0FMNXpVSTtFZ0NNZ0I7SUFDSTtJQUNBO0UzQnl6VXRCO0UyQjN6VWtCO0lBQ0k7SUFDQTtFM0I2elV0QjtFMkIvelVrQjtJQUNJO0lBQ0E7RTNCaTBVdEI7RTJCbjBVa0I7SUFDSTtJQUNBO0UzQnEwVXRCO0UyQnYwVWtCO0lBQ0k7SUFDQTtFM0J5MFV0QjtFMkIzMFVrQjtJQUNJO0lBQ0E7RTNCNjBVdEI7RTJCLzBVa0I7SUFDSTtJQUNBO0UzQmkxVXRCO0UyQm4xVWtCO0lBQ0k7SUFDQTtFM0JxMVV0QjtFMkJ2MVVrQjtJQUNJO0lBQ0E7RTNCeTFVdEI7RTJCMzFVa0I7SUFDSTtJQUNBO0UzQjYxVXRCO0UyQi8xVWtCO0lBQ0k7SUFDQTtFM0JpMlV0QjtFMkJuMlVrQjtJQUNJO0lBQ0E7RTNCcTJVdEI7RTJCajJVYztJQUNJO0lBQ0E7RTNCbTJVbEI7QUFDRjtBTDMxVUk7RWdDTFk7SUFDSTtRQUFBO1lBQUE7RTNCbTJVbEI7RTJCaDJVYztJQUNJO1FBQUE7WUFBQTtFM0JrMlVsQjtBQUNGO0FMMTNVSTtFZ0NNZ0I7SUFDSTtJQUNBO0UzQnUzVXRCO0UyQnozVWtCO0lBQ0k7SUFDQTtFM0IyM1V0QjtFMkI3M1VrQjtJQUNJO0lBQ0E7RTNCKzNVdEI7RTJCajRVa0I7SUFDSTtJQUNBO0UzQm00VXRCO0UyQnI0VWtCO0lBQ0k7SUFDQTtFM0J1NFV0QjtFMkJ6NFVrQjtJQUNJO0lBQ0E7RTNCMjRVdEI7RTJCNzRVa0I7SUFDSTtJQUNBO0UzQis0VXRCO0UyQmo1VWtCO0lBQ0k7SUFDQTtFM0JtNVV0QjtFMkJyNVVrQjtJQUNJO0lBQ0E7RTNCdTVVdEI7RTJCejVVa0I7SUFDSTtJQUNBO0UzQjI1VXRCO0UyQjc1VWtCO0lBQ0k7SUFDQTtFM0IrNVV0QjtFMkJqNlVrQjtJQUNJO0lBQ0E7RTNCbTZVdEI7RTJCLzVVYztJQUNJO0lBQ0E7RTNCaTZVbEI7QUFDRjtBTHo1VUk7RWdDTFk7SUFDSTtRQUFBO1lBQUE7RTNCaTZVbEI7RTJCOTVVYztJQUNJO1FBQUE7WUFBQTtFM0JnNlVsQjtBQUNGO0EyQjU1VVE7RUFDSTtNQUFBO1VBQUE7QTNCODVVWjtBMkIzNVVRO0VBQ0k7TUFBQTtVQUFBO0EzQjY1VVo7QUw5N1VJO0VnQ2dDSTtJQUlRO1FBQUE7WUFBQTtFM0I4NVVkO0FBQ0Y7QUw1NlVJO0VnQ2tCUTtJQUVRO0UzQjQ1VWxCO0FBQ0Y7QUw1N1VJO0VnQ3FDUTtJQUVRO0UzQnk1VWxCO0FBQ0Y7QTJCcjVVUTtFQUNJO01BQUE7RUFDQTtBM0J1NVVaO0EyQnA1VVE7RUFDSTtNQUFBO0VBQ0E7QTNCczVVWjtBMkJuNVVRO0VBQ0k7RUFDQTtBM0JxNVVaO0EyQmw1VVE7RUFDSTtFQUNBO0EzQm81VVo7QTJCajVVUTtFQUNJO0VBQ0E7RUFDQTtBM0JtNVVaO0EyQmg1VVE7RUFDSTtNQUFBO0VBQ0E7RUFDQTtBM0JrNVVaO0EyQi80VVE7RUFDSTtNQUFBO1VBQUE7RUFDQTtNQUFBO0EzQmk1VVo7QTJCOTRVUTtFQUNJLG1CSzNIZ0I7QWhDMmdWNUI7QUw5K1VJO0VnQzZGSTtJQUlRLG9CSy9ISztFaENnaFZuQjtBQUNGOztBSC9nVkk7RUFDSTtFQUNBO0VBQ0E7QUdraFZSO0EyQmg1VVE7RUFDSTtFQUNBO0VBQUE7RUFBQTtFQUNBO0VBQUE7TUFBQTtVQUFBO0VBQ0E7TUFBQTtVQUFBO0VBQ0E7TUFBQTtVQUFBO0EzQms1VVo7QTJCLzRVUTtFQUNJO0EzQmk1VVo7QTJCOTRVUTtFQUNJO01BQUE7VUFBQTtBM0JnNVVaO0EyQjc0VVE7RUFDSTtNQUFBO1VBQUE7QTNCKzRVWjtBMkI1NFVRO0VBQ0k7TUFBQTtVQUFBO0EzQjg0VVo7QTJCMzRVUTtFQUNJO01BQUE7VUFBQTtBM0I2NFVaO0EyQjE0VVE7RUFDSTtNQUFBO1VBQUE7QTNCNDRVWjtBMkJ6NFVRO0VBQ0k7TUFBQTtVQUFBO0EzQjI0VVo7QTJCeDRVUTtFQUNJO01BQUE7VUFBQTtBM0IwNFVaO0EyQng0VVk7RUFDSTtFQUNBO0EzQjA0VWhCO0EyQnQ0VVE7RUFDSTtFQUNBO0EzQnc0VVo7QUxoaVZJO0VnQ3NKSTtJQUtRO0lBQ0E7RTNCeTRVZDtBQUNGO0EyQnY0VVk7RUFDSSxpQks3TFk7RUw4TFosa0JLOUxZO0FoQ3VrVjVCO0FMMWlWSTtFZ0MrSlE7SUFLUSxrQktsTUM7SUxtTUQsbUJLbk1DO0VoQzZrVm5CO0FBQ0Y7QTJCdDRVUTtFQUNJO0VBQ0E7QTNCdzRVWjtBMkJ0NFVZO0VBQ0k7RUFDQTtBM0J3NFVoQjtBMkJwNFVRO0VBQ0k7TUFBQTtVQUFBO0EzQnM0VVo7QTJCcDRVWTtFQUNJO0VBQ0E7QTNCczRVaEI7QTJCcDRVZ0I7RUFDSTtBM0JzNFVwQjtBMkJuNFVnQjtFQUNJO0EzQnE0VXBCO0EyQmg0VVE7RUFDSTtNQUFBO1VBQUE7QTNCazRVWjtBMkJoNFVZO0VBQ0k7RUFDQTtBM0JrNFVoQjtBMkJoNFVnQjtFQUNJO0EzQms0VXBCO0EyQi8zVWdCO0VBQ0k7QTNCaTRVcEI7QTJCNTNVUTtFQUNJO01BQUE7QTNCODNVWjtBTHJsVkk7RWdDME5JO0lBRVE7UUFBQTtFM0I2M1VkO0FBQ0Y7QTJCMTNVUTtFQUNJO0VBQUE7TUFBQTtVQUFBO0EzQjQzVVo7QTJCejNVUTtFQUNJO0VBQUE7TUFBQTtVQUFBO0EzQjIzVVo7QUxobVZJO0VnQ29PSTtJQUlRO0lBQUE7UUFBQTtZQUFBO0UzQjQzVWQ7QUFDRjtBMkJ6M1VRO0VBQ0k7RUFBQTtFQUFBO0EzQjIzVVo7QTJCeDNVUTtFQUNJLGlCS2pSYTtBaEMyb1Z6Qjs7QVF2b1ZJO0VBQ0k7SUFDSTtZQUFBO0VSMG9WVjtFUXZvVk07SUFDSTtZQUFBO0VSeW9WVjtBQUNGOztBUWhwVkk7RUFDSTtJQUNJO1lBQUE7RVIwb1ZWO0VRdm9WTTtJQUNJO1lBQUE7RVJ5b1ZWO0FBQ0Y7QVF0b1ZJO0VBQ0k7SUFDSTtZQUFBO0VSd29WVjtFUXJvVk07SUFDSTtZQUFBO0VSdW9WVjtFUXBvVk07SUFDSTtZQUFBO0VSc29WVjtBQUNGO0FRanBWSTtFQUNJO0lBQ0k7WUFBQTtFUndvVlY7RVFyb1ZNO0lBQ0k7WUFBQTtFUnVvVlY7RVFwb1ZNO0lBQ0k7WUFBQTtFUnNvVlY7QUFDRixDOzs7O0FuQi9wVkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0FrQzhOSjs7QWxDM05BO0VBQ0k7QWtDOE5KOztBaENwT0k7RUFESjtJQUVRO0VnQ3dPTjtBQUNGOztBaENyT0E7RUFDSTtFQUNBO0VBQ0E7QWdDd09KO0FoQ3RPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0VnQ3lPTjtBQUNGOztBaEN0T0E7RUFHWTtJQUNJO0lBQ0E7RWdDdU9kO0VoQ3pPVTtJQUNJO0lBQ0E7RWdDMk9kO0VoQzdPVTtJQUNJO0lBQ0E7RWdDK09kO0VoQ2pQVTtJQUNJO0lBQ0E7RWdDbVBkO0VoQ3JQVTtJQUNJO0lBQ0E7RWdDdVBkO0VoQ3pQVTtJQUNJO0lBQ0E7RWdDMlBkO0VoQzdQVTtJQUNJO0lBQ0E7RWdDK1BkO0VoQ2pRVTtJQUNJO0lBQ0E7RWdDbVFkO0VoQ3JRVTtJQUNJO0lBQ0E7RWdDdVFkO0VoQ3pRVTtJQUNJO0lBQ0E7RWdDMlFkO0VoQzdRVTtJQUNJO0lBQ0E7RWdDK1FkO0VoQ2pSVTtJQUNJO0lBQ0E7RWdDbVJkO0VoQzlRRTtJQUNJO0VnQ2dSTjtBQUNGO0FoQzNRUTtFQURKO0lBRVE7RWdDOFFWO0FBQ0Y7O0EvQm5UQTs7RUFBQTtBQ0FBOztFQUFBO0E4QjZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDcEQ3MUVnQjtFb0Q4MUVoQixjN0JuNUVTO0U2Qm81RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFZSTtFQUNJO0FBNzFHUjtBQSsxR1E7RUFDSTtBQTcxR1o7QXRDeFdJO0VzQ3VzSFE7SUFFUTtFQTcxR2xCO0FBQ0Y7QUFnMkdZO0VBQ0k7RUFDQTtBQTkxR2hCO0FBaTJHWTtFQUNJO0FBLzFHaEI7QXRDcFhJO0VzQ2t0SFE7SUFJUTtFQTkxR2xCO0FBQ0Y7QXRDelhJO0VzQ3l0SFk7SUFFUTtFQTkxR3RCO0FBQ0Y7QXRDOVhJO0VzQ2d1SFE7SUFFUTtJQUNBO0lBQ0E7RUFoMkdsQjtBQUNGO0FBbzJHUTtFQUNJO0FBbDJHWjtBdEN4WUk7RXNDeXVISTtJQUlRO0VBajJHZDtBQUNGLEM7Ozs7QXBEN2FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBbUM4Tko7O0FuQzNOQTtFQUNJO0FtQzhOSjs7QWpDcE9JO0VBREo7SUFFUTtFaUN3T047QUFDRjs7QWpDck9BO0VBQ0k7RUFDQTtFQUNBO0FpQ3dPSjtBakN0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFaUN5T047QUFDRjs7QWpDdE9BO0VBR1k7SUFDSTtJQUNBO0VpQ3VPZDtFakN6T1U7SUFDSTtJQUNBO0VpQzJPZDtFakM3T1U7SUFDSTtJQUNBO0VpQytPZDtFakNqUFU7SUFDSTtJQUNBO0VpQ21QZDtFakNyUFU7SUFDSTtJQUNBO0VpQ3VQZDtFakN6UFU7SUFDSTtJQUNBO0VpQzJQZDtFakM3UFU7SUFDSTtJQUNBO0VpQytQZDtFakNqUVU7SUFDSTtJQUNBO0VpQ21RZDtFakNyUVU7SUFDSTtJQUNBO0VpQ3VRZDtFakN6UVU7SUFDSTtJQUNBO0VpQzJRZDtFakM3UVU7SUFDSTtJQUNBO0VpQytRZDtFakNqUlU7SUFDSTtJQUNBO0VpQ21SZDtFakM5UUU7SUFDSTtFaUNnUk47QUFDRjtBakMzUVE7RUFESjtJQUVRO0VpQzhRVjtBQUNGOztBaENuVEE7O0VBQUE7QUNBQTs7RUFBQTtBK0I2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Q3JENzFFZ0I7RXFEODFFaEIsYzlCbjVFUztFOEJvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBWUk7RUFDSTtBQTcxR1I7QUErMUdRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsYzlCaHVIVztBOEJtWXZCO0FBZzJHUTtFQUNJO0VBQUE7RUFBQTtFQUNBLGM5QnJ1SFc7RVpLbkIsMkNBRmlCO0VBRWpCLG1DQUZpQjtBMENxWXJCO0FBZzJHWTtFQUNJLGM5QjF1SE87QThCNFl2QjtBQWsyR1E7RUFDSTtFQUNBO0VBQ0E7QUFoMkdaO0FBaTJHWTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQS8xR2hCO0FBazJHWTtFQUNJO0VBQ0E7RUFDQTtBQWgyR2hCO0FBazJHZ0I7RUFDSTtBQWgyR3BCO0FBcTJHUTtFQUNJO01BQUE7VUFBQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBbjJHWixDOzs7O0FyRGxiQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QW9DOE5KOztBcEMzTkE7RUFDSTtBb0M4Tko7O0FsQ3BPSTtFQURKO0lBRVE7RWtDd09OO0FBQ0Y7O0FsQ3JPQTtFQUNJO0VBQ0E7RUFDQTtBa0N3T0o7QWxDdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RWtDeU9OO0FBQ0Y7O0FsQ3RPQTtFQUdZO0lBQ0k7SUFDQTtFa0N1T2Q7RWxDek9VO0lBQ0k7SUFDQTtFa0MyT2Q7RWxDN09VO0lBQ0k7SUFDQTtFa0MrT2Q7RWxDalBVO0lBQ0k7SUFDQTtFa0NtUGQ7RWxDclBVO0lBQ0k7SUFDQTtFa0N1UGQ7RWxDelBVO0lBQ0k7SUFDQTtFa0MyUGQ7RWxDN1BVO0lBQ0k7SUFDQTtFa0MrUGQ7RWxDalFVO0lBQ0k7SUFDQTtFa0NtUWQ7RWxDclFVO0lBQ0k7SUFDQTtFa0N1UWQ7RWxDelFVO0lBQ0k7SUFDQTtFa0MyUWQ7RWxDN1FVO0lBQ0k7SUFDQTtFa0MrUWQ7RWxDalJVO0lBQ0k7SUFDQTtFa0NtUmQ7RWxDOVFFO0lBQ0k7RWtDZ1JOO0FBQ0Y7QWxDM1FRO0VBREo7SUFFUTtFa0M4UVY7QUFDRjs7QWpDblRBOztFQUFBO0FDQUE7O0VBQUE7QWdDNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0N0RDcxRWdCO0VzRDgxRWhCLGMvQm41RVM7RStCbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQWg4Rkk7RUFDSTtBQWpaUixDOzs7O0F0RHJZQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QXFDOE5KOztBckMzTkE7RUFDSTtBcUM4Tko7O0FuQ3BPSTtFQURKO0lBRVE7RW1Dd09OO0FBQ0Y7O0FuQ3JPQTtFQUNJO0VBQ0E7RUFDQTtBbUN3T0o7QW5DdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RW1DeU9OO0FBQ0Y7O0FuQ3RPQTtFQUdZO0lBQ0k7SUFDQTtFbUN1T2Q7RW5Dek9VO0lBQ0k7SUFDQTtFbUMyT2Q7RW5DN09VO0lBQ0k7SUFDQTtFbUMrT2Q7RW5DalBVO0lBQ0k7SUFDQTtFbUNtUGQ7RW5DclBVO0lBQ0k7SUFDQTtFbUN1UGQ7RW5DelBVO0lBQ0k7SUFDQTtFbUMyUGQ7RW5DN1BVO0lBQ0k7SUFDQTtFbUMrUGQ7RW5DalFVO0lBQ0k7SUFDQTtFbUNtUWQ7RW5DclFVO0lBQ0k7SUFDQTtFbUN1UWQ7RW5DelFVO0lBQ0k7SUFDQTtFbUMyUWQ7RW5DN1FVO0lBQ0k7SUFDQTtFbUMrUWQ7RW5DalJVO0lBQ0k7SUFDQTtFbUNtUmQ7RW5DOVFFO0lBQ0k7RW1DZ1JOO0FBQ0Y7QW5DM1FRO0VBREo7SUFFUTtFbUM4UVY7QUFDRjs7QWxDblRBOztFQUFBO0FDQUE7O0VBQUE7QWlDNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0N2RDcxRWdCO0V1RDgxRWhCLGNoQ241RVM7RWdDbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQWg0RUk7RTdDaDFDQTtFNkNrMUNJO0VBQ0E7RUFDQTtFQUNBO0FBajlCUjtBQW05QlE7RUFDSTtFQUNBO0VBQ0EsY2hDcjFDVztBZ0NvWXZCO0FBNjlCSTtFQUNJO0VBQ0E7QUEzOUJSO0FBeTlCSTtFQUNJO0VBQ0E7QUF2OUJSO0FBcTlCSTtFQUNJO0VBQ0E7QUFuOUJSO0FBdTBHSTtFQUNJLGtCQ2x1SGdCO0VEbXVIaEI7RUFDQTtFQUNBO0VBQ0E7RUFDQSxXaENsdUhjO0VnQ211SGQseUJoQy90SGU7QWdDMFp2QjtBQXcwR0k7RUFFSTtFQUNBLGNoQ251SGU7RWdDb3VIZjtFQUNBO0VBQ0E7RUFDQTtBQXYwR1I7QXpDM1lJO0V5QzJzSEE7SUFVUTtJQUNBO0lBQ0E7RUF0MEdWO0FBQ0Y7QUF5MEdJO0VBQ0kseUJoQ2x2SGU7RWdDbXZIZjtBQXYwR1I7QUEwMEdJO0VBQ0ksV2hDNXZIYztFZ0M2dkhkLHlCaENsd0hhO0VnQ213SGI7QUF4MEdSO0FBMjBHSTtFQUNJO0VBQ0E7RUFDQTtBQXowR1IsQzs7OztBdkRoY0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0F1QzhOSjs7QXZDM05BO0VBQ0k7QXVDOE5KOztBckNwT0k7RUFESjtJQUVRO0VxQ3dPTjtBQUNGOztBckNyT0E7RUFDSTtFQUNBO0VBQ0E7QXFDd09KO0FyQ3RPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0VxQ3lPTjtBQUNGOztBckN0T0E7RUFHWTtJQUNJO0lBQ0E7RXFDdU9kO0VyQ3pPVTtJQUNJO0lBQ0E7RXFDMk9kO0VyQzdPVTtJQUNJO0lBQ0E7RXFDK09kO0VyQ2pQVTtJQUNJO0lBQ0E7RXFDbVBkO0VyQ3JQVTtJQUNJO0lBQ0E7RXFDdVBkO0VyQ3pQVTtJQUNJO0lBQ0E7RXFDMlBkO0VyQzdQVTtJQUNJO0lBQ0E7RXFDK1BkO0VyQ2pRVTtJQUNJO0lBQ0E7RXFDbVFkO0VyQ3JRVTtJQUNJO0lBQ0E7RXFDdVFkO0VyQ3pRVTtJQUNJO0lBQ0E7RXFDMlFkO0VyQzdRVTtJQUNJO0lBQ0E7RXFDK1FkO0VyQ2pSVTtJQUNJO0lBQ0E7RXFDbVJkO0VyQzlRRTtJQUNJO0VxQ2dSTjtBQUNGO0FyQzNRUTtFQURKO0lBRVE7RXFDOFFWO0FBQ0Y7O0FwQ25UQTs7RUFBQTtBQ0FBOztFQUFBO0FtQzZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDekQ3MUVnQjtFeUQ4MUVoQixjbENuNUVTO0VrQ281RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFZSTtFQUNJLHlCbENudEhlO0VrQ290SGY7RUFDQTtFQUNBO0FBNzFHUjtBM0N4V0k7RTJDaXNIQTtJQU9RO0VBNTFHVjtBQUNGO0FBODFHUTtFQUNJO0FBNTFHWixDOzs7O0F6RGhaQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QXdDOE5KOztBeEMzTkE7RUFDSTtBd0M4Tko7O0F0Q3BPSTtFQURKO0lBRVE7RXNDd09OO0FBQ0Y7O0F0Q3JPQTtFQUNJO0VBQ0E7RUFDQTtBc0N3T0o7QXRDdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RXNDeU9OO0FBQ0Y7O0F0Q3RPQTtFQUdZO0lBQ0k7SUFDQTtFc0N1T2Q7RXRDek9VO0lBQ0k7SUFDQTtFc0MyT2Q7RXRDN09VO0lBQ0k7SUFDQTtFc0MrT2Q7RXRDalBVO0lBQ0k7SUFDQTtFc0NtUGQ7RXRDclBVO0lBQ0k7SUFDQTtFc0N1UGQ7RXRDelBVO0lBQ0k7SUFDQTtFc0MyUGQ7RXRDN1BVO0lBQ0k7SUFDQTtFc0MrUGQ7RXRDalFVO0lBQ0k7SUFDQTtFc0NtUWQ7RXRDclFVO0lBQ0k7SUFDQTtFc0N1UWQ7RXRDelFVO0lBQ0k7SUFDQTtFc0MyUWQ7RXRDN1FVO0lBQ0k7SUFDQTtFc0MrUWQ7RXRDalJVO0lBQ0k7SUFDQTtFc0NtUmQ7RXRDOVFFO0lBQ0k7RXNDZ1JOO0FBQ0Y7QXRDM1FRO0VBREo7SUFFUTtFc0M4UVY7QUFDRjs7QXJDblRBOztFQUFBO0FDQUE7O0VBQUE7QW9DNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0MxRDcxRWdCO0UwRDgxRWhCLGNuQ241RVM7RW1DbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQVlJO0UvQ2p0SEEsK0dBRmlCO0VBRWpCLHVHQUZpQjtFK0NxdEhiLHlCbkNudUhhO0VtQ291SGI7RUFDQSxrQkZydUhnQjtFRXN1SGhCLFduQ2p1SGM7RW1Da3VIZDtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUE5MUdSO0E1Q3hWSTtFNEMwcUhBO0lBZVE7SUFDQTtFQTcxR1Y7QUFDRjtBQSsxR1E7RUFFSTtFQUNBO0VBQ0EsV25DbnZIVTtFbUNvdkhWO0FBOTFHWjtBQWkyR1E7RUFDSSx3QzFEeHNIZ0I7RTBEeXNIaEI7RUFDQSxjbkMvdkhTO0FtQ2dhckI7QUFpMkdZO0VBRUkscUJuQ253SEs7RW1Db3dITCxXbkMvdkhNO0VtQ2d3SE4seUJuQ3J3SEs7QW1DcWFyQjtBQW0yR1k7RS9DeHZIUiwyQ0FGaUI7RUFFakIsbUNBRmlCO0UrQzR2SEw7RUFDQSx3QzFEdHRIWTtFMER1dEhaO0VBQ0EsY25DN3dISztBbUM0YXJCO0FBbTJHZ0I7RUFFSSx3QzFENXRIUTtFMEQ2dEhSO0FBbDJHcEI7QUFzMkdZO0VBQ0ksV25DbHhITTtFbUNteEhOLGtCbkNueEhNO0FtQythdEI7QUFzMkdnQjtFQUVJO0VBQ0Esd0MxRHh1SFE7RTBEeXVIUjtBQXIyR3BCO0FBeTJHWTtFQUNJLGNuQ3p4SE87RW1DMHhIUCxxQm5DenhITztBbUNrYnZCO0FBeTJHZ0I7RUFFSSxxQm5DOXhIRztFbUMreEhILFduQ3B5SEU7RW1DcXlIRix5Qm5DaHlIRztBbUN3YnZCO0FBNjJHUTtFQUNJLHlCbkMveUhRO0VtQ2d6SFIscUJuQ2h6SFE7RW1DaXpIUixXbkM3eUhVO0FtQ2tjdEI7QUE2MkdZO0VBRUk7RUFDQTtBQTUyR2hCO0FBZzNHUTtFQUNJLFduQ3Z6SFU7RW1Dd3pIVix5Qm5DeHlIWTtFbUN5eUhaLHFCbkN6eUhZO0FtQzJieEI7QUFnM0dZO0VBRUk7RUFDQTtBQS8yR2hCO0FBbTNHUTtFQUNJO0VBQ0E7RUFDQTtBQWozR1o7QTVDemJJO0U0Q3V5SEk7SUFNUTtJQUNBO0lBQ0E7RUFoM0dkO0FBQ0Y7QUFtM0dRO0VBQ0k7RUFDQTtFQUNBO0FBajNHWjtBNUNyY0k7RTRDbXpISTtJQU1RO0lBQ0E7RUFoM0dkO0FBQ0Y7QUFtM0dRO0VBQ0k7RUFDQTtBQWozR1o7QUFvM0dRO0VBQ0k7RUFDQTtBQWwzR1o7QUFxM0dRO0VBQ0k7RUFDQTtBQW4zR1o7QUFzM0dRO0VBQ0k7RUFDQTtBQXAzR1o7QTVDM2RJO0U0QzYwSEk7SUFLUTtJQUNBO0VBbjNHZDtBQUNGO0FBczNHUTtFQUNJO0FBcDNHWjtBNUM3Y0k7RTRDbzBISTtJQUVRO0VBcjNHZDtBQUNGO0E1Q2xkSTtFNEMwMEhJO0lBRVE7RUF0M0dkO0FBQ0Y7QTVDOWVJO0U0Q3UySEk7SUFFUTtFQXYzR2Q7QUFDRjtBQTAzR1E7RS9DNzNISiwyQ0FGaUI7RUFFakIsbUNBRmlCO0UrQ2s0SFQsY25DcjRIVztBbUM0Z0J2QjtBQTIzR1k7RUFFSSxjbkN6NEhPO0FtQytnQnZCO0FBODNHUTtFQUNJO0FBNTNHWjtBQSszR1E7RUFDSSx5Qm5DNTVIUTtFbUM2NUhSLHFCbkM3NUhRO0FtQ2dpQnBCO0FBKzNHWTtFQUVJLHlCbkMvM0hVO0VtQ2c0SFYscUJuQ2g0SFU7QW1Da2dCMUI7QUFrNEdRO0VBQ0k7RUFDQTtBQWg0R1o7QUFtNEdRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7QUFqNEdaO0FBbTRHWTtFQUNJO0FBajRHaEI7QUFzNEdZO0VBQ0k7RUFDQTtBQXA0R2hCO0FBdzRHUTtFQUNJLHlCbkMvNkhXO0VtQ2c3SFgscUJuQ2g3SFc7RW1DaTdIWDtBQXQ0R1o7QUF3NEdZO0VBRUk7RUFDQTtBQXY0R2hCO0FBMjRHUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQXo0R1o7QUEyNEdZO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7QUF6NEdoQjtBQTg0R1E7RUFDSTtFQUNBO0FBNTRHWjtBQTg0R1k7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBNTRHaEI7QTVDamlCSTtFNENvNkhJO0lBWVE7SUFDQTtFQTM0R2Q7QUFDRjtBQTg0R1E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBNTRHWjtBQTg0R1k7RUFFSSx5Qm5DbitIUTtFbUNvK0hSLHFCbkN0K0hPO0FtQ3lsQnZCO0FBZzVHWTtFQUNJLGNuQzErSE87RW1DMitIUDtBQTk0R2hCO0FBazVHUTtFQUNJLGNuQ2gvSFc7RW1DaS9IWDtBQWg1R1o7QUFrNUdZO0VBRUksY25Dci9ITztFbUNzL0hQLHlCbkNwL0hRO0VtQ3EvSFIscUJuQ3YvSE87QW1Dc21CdkI7QUFzNUdRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQSxjbkNqZ0lXO0VtQ2tnSVg7RUFDQTtBQXA1R1o7QUFzNUdZO0VBQ0k7QUFwNUdoQjtBQXU1R1k7RUFDSSxjbkN2Z0lRO0VtQ3dnSVI7QUFyNUdoQjtBQXc1R1k7RUFFSTtFQUNBO0VBQ0E7QUF2NUdoQjtBQTI1R1E7RUFDSTtVQUFBO0FBejVHWjtBQTY1R1k7RUFDSTtBQTM1R2hCO0FBZzZHWTtFQUNJO0FBOTVHaEI7QUFrNkdRO0VBQ0k7RUFDQTtFQUNBLHlCbkNwaUlZO0VtQ3FpSVoscUJuQ3JpSVk7QW1DcW9CeEI7QUFrNkdZO0VBRUk7RUFDQTtBQWo2R2hCO0E1Q3ZtQkk7RTRDKy9ISTtJQVlRO0lBQ0E7RUFoNkdkO0FBQ0Y7QUFxNkdZO0VBQ0k7RUFDQTtFQUNBO0FBbjZHaEI7QUF1NkdRO0VBQ0k7QUFyNkdaO0FBdzZHUTtFQUNJO0FBdDZHWjtBQTA2R1k7RUFDSTtFQUNBO0FBeDZHaEI7QUE0NkdRO0VBQ0k7RUFDQTtFQUNBO0VBQ0EsY25DbmxJVztFbUNvbElYO0FBMTZHWjtBQTI2R1k7RUFFSSx5Qm5DcmxJUTtFbUNzbElSLHFCbkN4bElPO0FtQzhxQnZCO0FBNjZHWTtFQUNJLGNuQzVsSU87RW1DNmxJUDtFQUNBO01BQUE7VUFBQTtFQUNBO0VBQ0E7RUFBQTtFQUFBO0VBQ0E7TUFBQTtVQUFBO0VBQ0E7QUEzNkdoQjtBQTY2R1k7RUFDSTtBQTM2R2hCO0FBKzZHZ0I7RUFDSTtBQTc2R3BCO0FBbzdHUTtFQUNJO0FBbDdHWjtBQXE3R1E7RS9Dcm5JSiwyRUFGaUI7RUFFakIsbUVBRmlCO0UrQ3luSVQsY25DN25JVztFbUM4bklYLHFCbkM3bklXO0FtQzBzQnZCO0FBcTdHWTtFQUVJLHdDMUR2bElZO0UwRHdsSVoscUJuQzdvSUs7RW1DOG9JTCxjbkM5b0lLO0FtQzB0QnJCO0FBdzdHUTtFQUVJLHlCbkMvbklZO0VtQ2dvSVoscUJuQ2hvSVk7RW1DaW9JWixXbkNqcElVO0VtQ2twSVY7QUF2N0daO0FBeTdHWTtFQUVJLHlCbkN0b0lRO0VtQ3VvSVIscUJuQ3ZvSVE7QW1DK3NCeEI7QUE0N0dRO0VBQ0k7QUExN0daO0FBNjdHUTtFQUNJO0VBQUE7RUFBQTtFQUNBO01BQUE7VUFBQTtFQUNBO01BQUE7VUFBQTtFQUNBO0FBMzdHWjtBQTg3R1E7RUFDSTtFQUNBLGdCbkN4cUlVO0VtQ3lxSVYscUJuQ2hxSVc7RW1DaXFJWCxjbkNwcUlXO0VtQ3FxSVg7VUFBQTtFQUNBO0FBNTdHWjtBQSs3R1E7RUFDSTtFQUNBLGNuQzNxSVc7RW1DNHFJWDtFQUNBO0VBQ0EscUJuQ3RxSVk7QW1DeXVCeEI7QUErN0dZO0VBRUksY25DbHJJTztFbUNtcklQLHlCbkNycklPO0VtQ3NySVA7QUE5N0doQjtBQWs4R1E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBQWg4R1o7QTVDdnVCSTtFNENtcUlJO0lBT1E7SUFDQTtFQS83R2Q7QUFDRjtBQWs4R1E7RUFDSTtFQUNBO0FBaDhHWjtBQW04R1E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBajhHWjtBQW84R1E7RUFDSSx5Qm5DdHRJWTtFbUN1dElaLHFCbkNudElXO0VtQ290SVgsY25DcHRJVztBbUNreEJ2QjtBQXE4R1E7RUFJSSx5Qm5DaHVJWTtFbUNpdUlaLGNuQzV0SVc7QW1Dc3hCdkI7QUF5OEdRO0VBQ0ksY25DbHRJVTtBbUMyd0J0QjtBQW85R0k7RUFDSSx5Qm5DcnJJdUI7RW1Dc3JJdkIscUJuQ3RySXVCO0FtQ291Qi9CO0FBbzlHUTtFQUVJO0VBQ0E7QUFuOUdaO0FBdTlHSTtFQUNJLHNCbkMvdkljO0VtQ2d3SWQscUJuQ3J3SWE7RW1Dc3dJYixjbkN0d0lhO0FtQ2l6QnJCO0FBdTlHUTtFQUVJLHlCbkMxd0lTO0VtQzJ3SVQsV25DdHdJVTtBbUNnekJ0QjtBQW04R0k7RUFDSSx5Qm5DcnJJdUI7RW1Dc3JJdkIscUJuQ3RySXVCO0FtQ3F2Qi9CO0FBbThHUTtFQUVJO0VBQ0E7QUFsOEdaO0FBczhHSTtFQUNJLHNCbkMvdkljO0VtQ2d3SWQscUJuQ3J3SWE7RW1Dc3dJYixjbkN0d0lhO0FtQ2swQnJCO0FBczhHUTtFQUVJLHlCbkMxd0lTO0VtQzJ3SVQsV25DdHdJVTtBbUNpMEJ0QjtBQWs3R0k7RUFDSSx5Qm5DcnJJdUI7RW1Dc3JJdkIscUJuQ3RySXVCO0FtQ3N3Qi9CO0FBazdHUTtFQUVJO0VBQ0E7QUFqN0daO0FBcTdHSTtFQUNJLHNCbkMvdkljO0VtQ2d3SWQscUJuQ3J3SWE7RW1Dc3dJYixjbkN0d0lhO0FtQ20xQnJCO0FBcTdHUTtFQUVJLHlCbkMxd0lTO0VtQzJ3SVQsV25DdHdJVTtBbUNrMUJ0QixDOzs7O0ExRHYxQkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0F5QzhOSjs7QXpDM05BO0VBQ0k7QXlDOE5KOztBdkNwT0k7RUFESjtJQUVRO0V1Q3dPTjtBQUNGOztBdkNyT0E7RUFDSTtFQUNBO0VBQ0E7QXVDd09KO0F2Q3RPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0V1Q3lPTjtBQUNGOztBdkN0T0E7RUFHWTtJQUNJO0lBQ0E7RXVDdU9kO0V2Q3pPVTtJQUNJO0lBQ0E7RXVDMk9kO0V2QzdPVTtJQUNJO0lBQ0E7RXVDK09kO0V2Q2pQVTtJQUNJO0lBQ0E7RXVDbVBkO0V2Q3JQVTtJQUNJO0lBQ0E7RXVDdVBkO0V2Q3pQVTtJQUNJO0lBQ0E7RXVDMlBkO0V2QzdQVTtJQUNJO0lBQ0E7RXVDK1BkO0V2Q2pRVTtJQUNJO0lBQ0E7RXVDbVFkO0V2Q3JRVTtJQUNJO0lBQ0E7RXVDdVFkO0V2Q3pRVTtJQUNJO0lBQ0E7RXVDMlFkO0V2QzdRVTtJQUNJO0lBQ0E7RXVDK1FkO0V2Q2pSVTtJQUNJO0lBQ0E7RXVDbVJkO0V2QzlRRTtJQUNJO0V1Q2dSTjtBQUNGO0F2QzNRUTtFQURKO0lBRVE7RXVDOFFWO0FBQ0Y7O0F0Q25UQTs7RUFBQTtBQ0FBOztFQUFBO0FxQzZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDM0Q3MUVnQjtFMkQ4MUVoQixjcENuNUVTO0VvQ281RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFZSTtFQUNJO0FBNzFHUjtBQSsxR1E7RUFDSTtFQUNBO0VBQUE7RUFBQTtFQUNBO0VBQUE7TUFBQTtVQUFBO0VBQ0E7TUFBQTtVQUFBO0FBNzFHWjtBQWcyR1E7RWhEM3RISixzRkFGaUI7RUFFakIsOEVBRmlCO0VnRCt0SFQ7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLHNCcEM3dUhVO0VvQzh1SFY7RUFDQTtFQUNBLGtCSHJ2SFk7RUdzdkhaO01BQUE7VUFBQTtBQTkxR1o7QTdDeFhJO0U2QzJzSEk7SUFjUTtJQUNBO0lBQ0E7SUFDQTtFQTcxR2Q7QUFDRjtBQSsxR1k7RUFDSTtFQUNBO0VBQ0E7QUE3MUdoQjtBN0NyWUk7RTZDK3RIUTtJQU1RO0lBQ0E7SUFDQTtFQTUxR2xCO0FBQ0Y7QUErMUdZO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQSxVQ2h4SEs7QURtYnJCO0E3Q25aSTtFNkMydUhRO0lBUVE7SUFDQTtFQTUxR2xCO0FBQ0Y7QUErMUdZO0VBQ0k7QUE3MUdoQjtBQWcyR1k7RUFDSTtBQTkxR2hCO0FBaTJHWTtFQUNJO0FBLzFHaEI7QUFtMkdRO0UvQ3R4SEo7RUFDQTtFQUNBO0UrQ3N4SFE7QUEvMUdaO0FBazJHZ0I7RUFDSSx5QnBDM3lIQztFb0M0eUhELHFCcEM1eUhDO0FvQzRjckI7QUFrMkdvQjtFL0MxeUhoQjtFQUNBO0VBQ0E7QStDMmNKO0FBaTJHb0I7RUFDSSx5QnBDbnhIQTtFb0NveEhBLHFCcENweEhBO0FvQ3FieEI7QUFrMkdvQjtFQUNJLHNCcENuekhGO0VvQ296SEUscUJwQzl5SEQ7QW9DOGN2QjtBQW8yR2dCO0VBQ0k7QUFsMkdwQjtBQW8yR29CO0VBQ0k7QUFsMkd4QjtBQXkyR2dCO0VBRUksc0JwQ3IwSEU7RW9DczBIRixxQnBDbDBIRztFb0NtMEhIO0FBeDJHcEI7QUEyMkdnQjtFQUNJLHlCcEN2MEhHO0FvQzhkdkI7QUE0MkdnQjtFQUNJLGNwQ3owSEc7RW9DMDBISDtBQTEyR3BCO0FBKzJHUTtFL0MzMEhKO0VBQ0E7RUFDQTtFRERBLDJFQUZpQjtFQUVqQixtRUFGaUI7RWdEKzBIVCxXcEN4MUhVO0VvQ3kxSFY7QUEzMkdaO0FBNjJHWTtFQUNJLGNwQ3QxSE87RW9DdTFIUDtBQTMyR2hCO0FBKzJHUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0tBQUE7TUFBQTtVQUFBO0VBQ0E7TUFBQTtVQUFBO0FBNzJHWjtBQSsyR1k7RUFDSTtNQUFBO1VBQUE7RUFDQTtFQUFBO0VBQUE7RUFDQTtNQUFBO1VBQUE7RUFDQTtNQUFBO1VBQUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQTcyR2hCO0FBZzNHWTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsY3BDcjNITztFb0NzM0hQO0FBOTJHaEI7QUFpM0dZO0VBQ0k7RUFDQSxjcEN0MkhRO0FvQ3VmeEI7QUFtM0dRO0VBQ0k7QUFqM0daO0FBbzNHUTtFQUNJO0FBbDNHWjtBQXEzR1E7RUFDSTtFQUNBO0VBQ0E7QUFuM0daO0E3Q2xnQkk7RTZDazNISTtJQU1RO0VBbDNHZDtBQUNGO0FBcTNHUTtFQUNJO0FBbjNHWjtBQXMzR2dCO0VBQ0kscUJwQ3Q1SEc7QW9Da2lCdkI7QTdDN2dCSTtFNkNzNEhJO0lBRVE7RUF2M0dkO0FBQ0Y7QUEwM0dnQjtFQUNJLHFCcENsNkhHO0FvQzBpQnZCO0FBNjNHUTtFQUNJLHFCcENsN0hRO0FvQ3VqQnBCO0FBKzNHWTtFQUNJLHFCcEN4N0hLO0FvQzJqQnJCO0FBKzNHZ0I7RUFDSSxxQnBDMzVISTtBb0M4aEJ4QjtBQWk0R1k7O0VBRUkscUJwQ3g3SE87QW9DeWpCdkIsQzs7OztBM0Rsa0JBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBMkM4Tko7O0EzQzNOQTtFQUNJO0EyQzhOSjs7QXpDcE9JO0VBREo7SUFFUTtFeUN3T047QUFDRjs7QXpDck9BO0VBQ0k7RUFDQTtFQUNBO0F5Q3dPSjtBekN0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFeUN5T047QUFDRjs7QXpDdE9BO0VBR1k7SUFDSTtJQUNBO0V5Q3VPZDtFekN6T1U7SUFDSTtJQUNBO0V5QzJPZDtFekM3T1U7SUFDSTtJQUNBO0V5QytPZDtFekNqUFU7SUFDSTtJQUNBO0V5Q21QZDtFekNyUFU7SUFDSTtJQUNBO0V5Q3VQZDtFekN6UFU7SUFDSTtJQUNBO0V5QzJQZDtFekM3UFU7SUFDSTtJQUNBO0V5QytQZDtFekNqUVU7SUFDSTtJQUNBO0V5Q21RZDtFekNyUVU7SUFDSTtJQUNBO0V5Q3VRZDtFekN6UVU7SUFDSTtJQUNBO0V5QzJRZDtFekM3UVU7SUFDSTtJQUNBO0V5QytRZDtFekNqUlU7SUFDSTtJQUNBO0V5Q21SZDtFekM5UUU7SUFDSTtFeUNnUk47QUFDRjtBekMzUVE7RUFESjtJQUVRO0V5QzhRVjtBQUNGOztBeENuVEE7O0VBQUE7QUNBQTs7RUFBQTtBdUM2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3QzdENzFFZ0I7RTZEODFFaEIsY3RDbjVFUztFc0NvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBem5FSTtFQUNJO0VBQ0EsV0FWWTtFQVdaLFlBWFk7RUFZWjtFQUNBO0VBQ0E7S0FBQTtNQUFBO1VBQUE7QUF4dENSO0FBMHRDUTtFQUNJLGNBZmM7RUFnQmQsZUFoQmM7QUF4c0MxQjtBQTJ0Q1E7RUFDSSxhQXJCZ0I7RUFzQmhCLGNBdEJnQjtBQW5zQzVCO0FBNHRDUTtFQUNJLGNBaW5FWTtFQWhuRVosZUFnbkVZO0FBMTBHeEI7QUE2dENRO0VBQ0ksYUE2bUVlO0VBNW1FZixjQTRtRWU7QUF2MEczQjtBQTh0Q1E7RUFDSSxXQWhDZ0I7RUFpQ2hCLFlBakNnQjtBQTNyQzVCO0FBczBHSTtFQUNJO0VBQ0E7RUFDQTtBQXAwR1I7QS9DbllJO0UrQ29zSEE7SUFNUTtJQUNBO0VBbjBHVjtBQUNGO0EvQ3pZSTtFK0Nvc0hBO0lBV1E7RUFsMEdWO0FBQ0Y7QUFxMEdJO0VBQ0k7RUFDQTtBQW4wR1I7QS9DbFpJO0UrQ210SEE7SUFLUTtJQUNBO0VBbDBHVjtBQUNGO0FBcTBHSTtFQUNJO0VBQ0E7RUFDQTtBQW4wR1I7QUFzMEdJO0VBQ0k7RUFDQTtBQXAwR1I7QS9DamFJO0UrQ211SEE7SUFLUTtJQUNBO0VBbjBHVjtBQUNGO0FBczBHSTtFQUNJO0VBQ0E7RUFDQTtBQXAwR1I7QUF1MEdJO0VBQ0k7RUFDQTtFQUNBO0FBcjBHUjtBQXUwR1E7RUFDSSxhdEM5d0hXO0VzQyt3SFg7QUFyMEdaO0FBdTBHWTtFQUNJO0FBcjBHaEI7QUEwMEdJO0VBQ0k7RUFDQTtFQUNBO0FBeDBHUjtBQTIwR0k7RUFDSTtFQUNBO0FBejBHUjtBL0NqY0k7RStDd3dIQTtJQUtRO0lBQ0E7SUFDQTtFQXgwR1Y7QUFDRjtBQTIwR0k7RUFDSTtFQUNBO0VBQ0EsYXRDM3lIZTtBc0NrZXZCO0FBNDBHSTtFQUNJO0VBQ0E7QUExMEdSO0EvQ2pkSTtFK0N5eEhBO0lBS1E7SUFDQTtJQUNBO0VBejBHVjtBQUNGO0FBNDBHSTtFQUNJO0VBQ0E7QUExMEdSO0FBNjBHSTtFQUNJO0VBQ0E7RUFDQTtBQTMwR1I7QS9DamVJO0UrQ3l5SEE7SUFNUTtFQTEwR1Y7QUFDRjtBQTYwR0k7RUFDSTtFQUNBO0FBMzBHUjtBQTgwR0k7RUFDSTtVQUFBO0FBNTBHUjtBQSswR0k7RUFDSTtFQUNBO0VBQ0E7QUE3MEdSO0FBKzBHUTtFQUVJO0VBQ0E7RUFDQSx5QnRDMTFIVztBc0M0Z0J2QjtBQWkxR1E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO1VBQUE7QUEvMEdaO0EvQzlmSTtFK0N3MEhJO0lBUVE7RUE5MEdkO0FBQ0Y7QUFpMUdRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtVQUFBO0FBLzBHWjtBL0MxZ0JJO0UrQ28xSEk7SUFRUTtFQTkwR2Q7QUFDRjtBQWsxR1k7RUFDSTtBQWgxR2hCO0FBczFHUTtFQUNJO0FBcDFHWjtBQXUxR1E7RUFDSTtBQXIxR1o7QUF5MUdJO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7QUF2MUdSO0FBMjFHUTtFQUVJLHlCdENqNUhXO0FzQ3VqQnZCO0FBODFHSTtFbEQvNEhBLDJDQUZpQjtFQUVqQixtQ0FGaUI7RWtEbTVIYixjdEN0NUhlO0VzQ3U1SGY7QUE1MUdSO0FBKzFHSTtFQUNJO0FBNzFHUjtBQWcyR0k7RUFFSTtFQUNBO0FBLzFHUjtBQWsyR0k7RUFFSTtFQUNBO0FBajJHUjtBQW8yR0k7RUFDSTtBQWwyR1I7QUFxMkdJO0VBQ0k7RUFDQTtBQW4yR1I7QUFzMkdJO0VBQ0k7RUFDQTtBQXAyR1I7QS9DNWpCSTtFK0M4NUhBO0lBS1E7SUFDQTtFQW4yR1Y7QUFDRjtBQXMyR0k7RUFDSTtFQUNBO0FBcDJHUjtBQXUyR0k7RUFDSTtFQUNBO0VBQ0E7QUFyMkdSO0EvQzNrQkk7RStDNjZIQTtJQU1RO0lBQ0E7RUFwMkdWO0FBQ0Y7QUF1MkdJO0VBQ0k7QUFyMkdSO0FBdzJHSTtFQUNJO0VBQ0E7QUF0MkdSO0FBeTJHSTtFQUNJO0VBQ0E7QUF2MkdSO0FBMDJHSTtFQUNJO0VBQ0E7QUF4MkdSO0FBMjJHSTtFQUNJO0FBejJHUjtBQTQyR0k7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBQTEyR1I7QUE2MkdJO0VBQ0k7QUEzMkdSO0FBODJHSTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0FBNTJHUjtBQSsyR0k7RUFDSTtFQUNBO0VBQ0E7QUE3MkdSO0FBZzNHSTtFQUNJO0VBQ0E7QUE5MkdSO0FBaTNHSTtFQUNJO0FBLzJHUjtBQWszR0k7RUFDSTtBQWgzR1I7QUFtM0dJO0VBQ0k7QUFqM0dSO0FBbzNHSTtFQUNJO0FBbDNHUjtBQXEzR0k7RUFDSTtFQUNBO0FBbjNHUjtBQXMzR0k7RWxEamhJQSwyQ0FGaUI7RUFFakIsbUNBRmlCO0VrRHFoSWI7RUFDQSxjdEN6aEllO0FzQ3FxQnZCO0FBdTNHSTtFQUNJO0VBQ0E7QUFyM0dSO0FBdzNHSTtFQUNJO0VBQ0E7RUFDQTtBQXQzR1I7QUF5M0dJO0VBQ0k7RUFDQTtFQUNBO0FBdjNHUjtBQTAzR0k7RUFDSTtBQXgzR1I7QUEyM0dJO0VBQ0k7RUFDQTtBQXozR1I7QUE0M0dJO0VBQ0k7RUFDQTtBQTEzR1I7QS9DenFCSTtFK0NpaUlBO0lBS1E7SUFDQTtFQXozR1Y7QUFDRjtBQTQzR0k7RUFDSTtFQUNBO0FBMTNHUjtBL0NuckJJO0UrQzJpSUE7SUFLUTtJQUNBO0VBejNHVjtBQUNGO0FBNDNHSTtFQUNJO0VBQ0E7QUExM0dSO0FBNjNHSTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUEzM0dSO0FBODNHSTtFbERsbElBLDJDQUZpQjtFQUVqQixtQ0FGaUI7RWtEc2xJYjtFQUNBO0FBNTNHUjtBQTgzR1E7RUFDSSxjdEM3bElXO0FzQ2l1QnZCO0FBZzRHSTtFQUNJO0VBQ0E7QUE5M0dSLEM7Ozs7QTdEaHZCQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QTRDOE5KOztBNUMzTkE7RUFDSTtBNEM4Tko7O0ExQ3BPSTtFQURKO0lBRVE7RTBDd09OO0FBQ0Y7O0ExQ3JPQTtFQUNJO0VBQ0E7RUFDQTtBMEN3T0o7QTFDdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RTBDeU9OO0FBQ0Y7O0ExQ3RPQTtFQUdZO0lBQ0k7SUFDQTtFMEN1T2Q7RTFDek9VO0lBQ0k7SUFDQTtFMEMyT2Q7RTFDN09VO0lBQ0k7SUFDQTtFMEMrT2Q7RTFDalBVO0lBQ0k7SUFDQTtFMENtUGQ7RTFDclBVO0lBQ0k7SUFDQTtFMEN1UGQ7RTFDelBVO0lBQ0k7SUFDQTtFMEMyUGQ7RTFDN1BVO0lBQ0k7SUFDQTtFMEMrUGQ7RTFDalFVO0lBQ0k7SUFDQTtFMENtUWQ7RTFDclFVO0lBQ0k7SUFDQTtFMEN1UWQ7RTFDelFVO0lBQ0k7SUFDQTtFMEMyUWQ7RTFDN1FVO0lBQ0k7SUFDQTtFMEMrUWQ7RTFDalJVO0lBQ0k7SUFDQTtFMENtUmQ7RTFDOVFFO0lBQ0k7RTBDZ1JOO0FBQ0Y7QTFDM1FRO0VBREo7SUFFUTtFMEM4UVY7QUFDRjs7QXpDblRBOztFQUFBO0FDQUE7O0VBQUE7QXdDNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0M5RDcxRWdCO0U4RDgxRWhCLGN2Q241RVM7RXVDbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQW5sRUk7RW5EbG5EQSxrREFGaUI7RUFFakIsMENBRmlCO0VtRHNuRGI7RUFDQTtFQUNBO0FBOXZDUjtBQWd3Q1E7RUFDSSxxQnZDL25EVztBdUNpWXZCO0FBaXdDUTtFQUNJLGN2Q25vRFc7QXVDb1l2QjtBQTh2Q1E7RUFDSSxjdkNub0RXO0F1Q29ZdkI7QUE4dkNRO0VBQ0ksY3ZDbm9EVztBdUNvWXZCO0FBOHZDUTtFQUNJLGN2Q25vRFc7QXVDb1l2QjtBQTh2Q1E7RUFDSSxjdkNub0RXO0F1Q29ZdkI7QUFrd0NRO0VBQ0k7RUFDQTtBQWh3Q1o7QUFtd0NRO0VBQ0ksd0M5RGptRGdCO0U4RGttRGhCO0FBandDWjtBQW93Q1E7RUFDSTtBQWx3Q1o7QUFxd0NRO0VBRUkseUI5RHBvRGE7RThEcW9EYjtBQXB3Q1o7QUFvMEdJO0VBQ0k7RUFDQSxrQk5udUhnQjtFTW91SGhCLGN2Q3p0SGU7RXVDMHRIZjtFQUNBO0FBbDBHUjtBQXEwR0k7RUFFSTtBQXAwR1I7QUF1MEdJO0VBQ0k7QUFyMEdSO0FBdzBHSTtFQUNJO0VBQ0E7RUFDQTtBQXQwR1I7QUF5MEdJO0VBQ0k7RUFDQTtLQUFBO1VBQUE7QUF2MEdSO0FBeTBHUTtFQUVJO1VBQUE7RUFDQTtBQXgwR1o7QUE0MEdJO0VBQ0k7RUFDQSxjdkMxdkhlO0V1QzJ2SGY7RUFDQTtBQTEwR1I7QWhEN1pJO0VnRG11SEE7SUFPUTtFQXowR1Y7QUFDRixDOzs7O0E5RGxjQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QTZDOE5KOztBN0MzTkE7RUFDSTtBNkM4Tko7O0EzQ3BPSTtFQURKO0lBRVE7RTJDd09OO0FBQ0Y7O0EzQ3JPQTtFQUNJO0VBQ0E7RUFDQTtBMkN3T0o7QTNDdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RTJDeU9OO0FBQ0Y7O0EzQ3RPQTtFQUdZO0lBQ0k7SUFDQTtFMkN1T2Q7RTNDek9VO0lBQ0k7SUFDQTtFMkMyT2Q7RTNDN09VO0lBQ0k7SUFDQTtFMkMrT2Q7RTNDalBVO0lBQ0k7SUFDQTtFMkNtUGQ7RTNDclBVO0lBQ0k7SUFDQTtFMkN1UGQ7RTNDelBVO0lBQ0k7SUFDQTtFMkMyUGQ7RTNDN1BVO0lBQ0k7SUFDQTtFMkMrUGQ7RTNDalFVO0lBQ0k7SUFDQTtFMkNtUWQ7RTNDclFVO0lBQ0k7SUFDQTtFMkN1UWQ7RTNDelFVO0lBQ0k7SUFDQTtFMkMyUWQ7RTNDN1FVO0lBQ0k7SUFDQTtFMkMrUWQ7RTNDalJVO0lBQ0k7SUFDQTtFMkNtUmQ7RTNDOVFFO0lBQ0k7RTJDZ1JOO0FBQ0Y7QTNDM1FRO0VBREo7SUFFUTtFMkM4UVY7QUFDRjs7QTFDblRBOztFQUFBO0FDQUE7O0VBQUE7QXlDNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0MvRDcxRWdCO0UrRDgxRWhCLGN4Q241RVM7RXdDbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQVlJO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQSxjeEMzdEhlO0F3QzhYdkI7QUFnMkdZO0VBQ0k7RUFDQTtFQUNBLGN4QzV1SEs7QXdDOFlyQjtBQW0yR1k7RUFDSTtBQWoyR2hCO0FBcTJHUTtFcER0dUhKLGtEQUZpQjtFQUVqQiwwQ0FGaUI7RW9EMHVIVDtFQUFBO0VBQUE7RUFDQTtNQUFBO1VBQUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0Esc0J4QzF2SFU7RXdDMnZIVixjeEN0dkhXO0V3Q3V2SFg7RUFDQTtFQUNBO0FBbjJHWjtBQXEyR1k7RUFDSSxxQnhDdHdISztBd0NtYXJCO0FBdTJHUTtFQUNJO0FBcjJHWixDOzs7O0EvRHRhQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QThDOE5KOztBOUMzTkE7RUFDSTtBOEM4Tko7O0E1Q3BPSTtFQURKO0lBRVE7RTRDd09OO0FBQ0Y7O0E1Q3JPQTtFQUNJO0VBQ0E7RUFDQTtBNEN3T0o7QTVDdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RTRDeU9OO0FBQ0Y7O0E1Q3RPQTtFQUdZO0lBQ0k7SUFDQTtFNEN1T2Q7RTVDek9VO0lBQ0k7SUFDQTtFNEMyT2Q7RTVDN09VO0lBQ0k7SUFDQTtFNEMrT2Q7RTVDalBVO0lBQ0k7SUFDQTtFNENtUGQ7RTVDclBVO0lBQ0k7SUFDQTtFNEN1UGQ7RTVDelBVO0lBQ0k7SUFDQTtFNEMyUGQ7RTVDN1BVO0lBQ0k7SUFDQTtFNEMrUGQ7RTVDalFVO0lBQ0k7SUFDQTtFNENtUWQ7RTVDclFVO0lBQ0k7SUFDQTtFNEN1UWQ7RTVDelFVO0lBQ0k7SUFDQTtFNEMyUWQ7RTVDN1FVO0lBQ0k7SUFDQTtFNEMrUWQ7RTVDalJVO0lBQ0k7SUFDQTtFNENtUmQ7RTVDOVFFO0lBQ0k7RTRDZ1JOO0FBQ0Y7QTVDM1FRO0VBREo7SUFFUTtFNEM4UVY7QUFDRjs7QTNDblRBOztFQUFBO0FDQUE7O0VBQUE7QTBDNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0NoRTcxRWdCO0VnRTgxRWhCLGN6Q241RVM7RXlDbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQTloRUk7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBLGN6QzVyRGE7RXlDNnJEYjtBQW56Q1I7QUFxekNRO0VBQ0k7QUFuekNaO0FBMjFDSTtFQUNJLGN6QzNxRGdCO0F5Q2tWeEI7QUF3MUNJO0VBQ0ksY3pDM3FEZ0I7QXlDcVZ4QjtBQXExQ0k7RUFDSSxjekMzcURnQjtBeUN3VnhCO0FBaXpDUTtFdERsc0RKO0FzRG9aSjtBQWt6Q1E7RXJEM3JESiwyQ0FGaUI7RUFFakIsbUNBRmlCO0FxRDhZckI7QUFrekNZO0VBQ0k7RUFDQTtBQWh6Q2hCO0FBb3pDUTtFQUNJO0FBbHpDWjtBQXF6Q1E7RUFFSSxjekNodERXO0V5Q2l0RFg7QUFwekNaO0FBc3pDWTtFQUNJLGN6Q3B0RE87RXlDcXREUDtBQXB6Q2hCO0FBdXpHSTtFQUNJO0VBQUE7RUFBQTtFQUNBO01BQUE7VUFBQTtFQUNBLGN6QzN0SGU7RXlDNHRIZjtFQUNBO0VBQ0E7QUFyekdSO0FsRG5aSTtFa0Rrc0hBO0lyRGx0SEEsMkNBRmlCO0lBRWpCLG1DQUZpQjtFcUR5YW5CO0FBQ0Y7QUFzekdRO0VBRUk7RUFDQSxjekN0dUhXO0F5Q2lidkI7QUF1ekdZO0VBQ0ksY3pDenVITztBeUNvYnZCO0FBMHpHSTtFQUNJLGN6QzF1SGU7QXlDa2J2QjtBQTB6R1E7RUFFSSxjekM5dkhTO0F5Q3FjckI7QUE2ekdJO0VBQ0k7RUFDQTtBQTN6R1I7QUE4ekdJO0VBQ0ksY3pDOXZIZTtBeUNrY3ZCO0FBOHpHUTtFQUVJLGN6Q2p3SFc7QXlDb2N2QjtBQWkwR0k7RUFDSSxXekM1d0hjO0F5QzZjdEI7QUFpMEdRO0VBRUksY3pDcHhIUTtBeUNvZHBCO0FBbzBHSTtFQUNJLGN6Qy93SGU7QXlDNmN2QjtBQW8wR1E7RUFFSSxjekNueEhXO0F5Q2dkdkI7QUF1MEdJO0VBQ0k7RUFDQTtFQUNBLGN6QzF4SGU7QXlDcWR2QjtBQXcwR0k7RUFDSSxjekMveEhlO0V5Q2d5SGY7QUF0MEdSO0FsRHBjSTtFa0R3d0hBO0lyRHh4SEEsMkNBRmlCO0lBRWpCLG1DQUZpQjtFcUQwZG5CO0FBQ0Y7QUF1MEdRO0VBRUk7RUFDQSxjekN4eUhXO0F5Q2tldkI7QUEwMEdJO0VBQ0ksY3pDOXlIZTtBeUNzZXZCO0FsRGhkSTtFa0R1eEhBO0lyRHZ5SEEsMkNBRmlCO0lBRWpCLG1DQUZpQjtFcURzZW5CO0FBQ0Y7QUF5MEdRO0VBQ0k7RUFDQSxjekNyekhXO0F5QzhldkI7QUEyMEdJO0VBQ0ksV3pDbDBIYztBeUN5ZnRCO0FsRDVkSTtFa0RveUhBO0lyRHB6SEEsMkNBRmlCO0lBRWpCLG1DQUZpQjtFcURrZm5CO0FBQ0Y7QUEwMEdRO0VBRUk7RUFDQSxjekNwMEhXO0F5QzJmdkI7QUE2MEdJO0VBQ0ksY3pDbjFIYTtBeUN3Z0JyQjtBbER4ZUk7RWtEa3pIQTtJckRsMEhBLDJDQUZpQjtJQUVqQixtQ0FGaUI7RXFEOGZuQjtBQUNGO0FBNDBHUTtFQUVJO0VBQ0EsY3pDajFIVztBeUNzZ0J2QjtBQSswR0k7RUFDSTtFQUNBO0VBQ0E7RUFDQTtNQUFBO1VBQUE7RUFDQSxrQlJyMkhnQjtFUXMySGhCO0FBNzBHUjtBbER6Zkk7RWtEZzBIQTtJQVNRO0lBQ0E7SUFDQTtRQUFBO1lBQUE7SUFDQTtJQUNBO0VBNTBHVjtBQUNGO0FBKzBHSTtFQUNJLGN6Q3gySGU7RVpNbkIsMkNBRmlCO0VBRWpCLG1DQUZpQjtBcUR3aEJyQjtBQSswR1E7RUFDSTtFQUNBLGN6QzUySFc7QXlDK2hCdkIsQzs7OztBQzFpQkEsZ0JBQWdCO0FqRUFoQjs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QStDK05KOztBL0M1TkE7RUFDSTtBK0MrTko7O0E3Q3JPSTtFQURKO0lBRVE7RTZDeU9OO0FBQ0Y7O0E3Q3RPQTtFQUNJO0VBQ0E7RUFDQTtBNkN5T0o7QTdDdk9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RTZDME9OO0FBQ0Y7O0E3Q3ZPQTtFQUdZO0lBQ0k7SUFDQTtFNkN3T2Q7RTdDMU9VO0lBQ0k7SUFDQTtFNkM0T2Q7RTdDOU9VO0lBQ0k7SUFDQTtFNkNnUGQ7RTdDbFBVO0lBQ0k7SUFDQTtFNkNvUGQ7RTdDdFBVO0lBQ0k7SUFDQTtFNkN3UGQ7RTdDMVBVO0lBQ0k7SUFDQTtFNkM0UGQ7RTdDOVBVO0lBQ0k7SUFDQTtFNkNnUWQ7RTdDbFFVO0lBQ0k7SUFDQTtFNkNvUWQ7RTdDdFFVO0lBQ0k7SUFDQTtFNkN3UWQ7RTdDMVFVO0lBQ0k7SUFDQTtFNkM0UWQ7RTdDOVFVO0lBQ0k7SUFDQTtFNkNnUmQ7RTdDbFJVO0lBQ0k7SUFDQTtFNkNvUmQ7RTdDL1FFO0lBQ0k7RTZDaVJOO0FBQ0Y7QTdDNVFRO0VBREo7SUFFUTtFNkMrUVY7QUFDRjs7QTVDcFRBOztFQUFBO0FDQUE7O0VBQUE7QTJDNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWlMWjs7QUE5SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0NqRTcxRWdCO0VpRTgxRWhCLGMxQ241RVM7RTBDbzVFVDtBQXJpRVo7QUF1aUVZO0VBQ0k7QUFyaUVoQjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBMGlFZ0I7RUFDSTtBQXhpRXBCO0FBNmlFUTtFQUNJO0FBM2lFWjs7QUEreEZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQXArRFE7RUFDSTtBQTUyQ1o7QUE4MkNZO0VBQ0k7QUE1MkNoQjtBQWczQ1E7RUFDSTtBQTkyQ1o7QUFpM0NRO0VBQ0k7RUFDQTtBQS8yQ1o7QUFpM0NZO0VBQ0k7QUEvMkNoQjtBQWszQ1k7RUFDSTtBQWgzQ2hCO0FBcTNDWTtFQUNJO0VBQ0E7QUFuM0NoQjtBQXczQ1k7RUFDSTtFQUNBO0FBdDNDaEI7QUEwM0NRO0VBQ0k7QUF4M0NaO0FBZzBHSTtFQUNJO0VBQ0E7QUE5ekdSO0FuRHJZSTtFbURpc0hBO0lBS1E7SUFDQTtFQTd6R1Y7QUFDRjtBQWcwR0k7RUFDSTtBQTl6R1I7QUFnMEdRO0VBQ0k7RUFDQTtBQTl6R1o7QW5EbFpJO0VtRDhzSEk7SUFLUTtJQUNBO0VBN3pHZDtBQUNGO0FBaTBHSTtFQUNJO0FBL3pHUjtBQWswR0k7RUFDSTtFQUNBO0VBQ0E7QUFoMEdSO0FBazBHUTtFQUNJO0FBaDBHWjtBQW0wR1E7RUFDSTtBQWowR1o7QUFxMEdJO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLHNCMUMvd0hjO0UwQ2d4SGQ7VUFBQTtFQUNBO0VBQ0E7VUFBQTtFQUNBO1VBQUE7RUFDQSxXTHB4SGtCO0VqRFd0Qix1REFGaUI7RUFFakIsK0NBRmlCO0VBRWpCLHVDQUZpQjtFQUVqQiw0RUFGaUI7QXNEeWNyQjtBbkR2Ykk7RW1EMnVIQTtJQWtCUTtZQUFBO0lBQ0E7SUFDQTtFQWwwR1Y7QUFDRjtBQXMwR1E7RUFDSTtBQXAwR1osQzs7OztBakVqZUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0FnRDhOSjs7QWhEM05BO0VBQ0k7QWdEOE5KOztBOUNwT0k7RUFESjtJQUVRO0U4Q3dPTjtBQUNGOztBOUNyT0E7RUFDSTtFQUNBO0VBQ0E7QThDd09KO0E5Q3RPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0U4Q3lPTjtBQUNGOztBOUN0T0E7RUFHWTtJQUNJO0lBQ0E7RThDdU9kO0U5Q3pPVTtJQUNJO0lBQ0E7RThDMk9kO0U5QzdPVTtJQUNJO0lBQ0E7RThDK09kO0U5Q2pQVTtJQUNJO0lBQ0E7RThDbVBkO0U5Q3JQVTtJQUNJO0lBQ0E7RThDdVBkO0U5Q3pQVTtJQUNJO0lBQ0E7RThDMlBkO0U5QzdQVTtJQUNJO0lBQ0E7RThDK1BkO0U5Q2pRVTtJQUNJO0lBQ0E7RThDbVFkO0U5Q3JRVTtJQUNJO0lBQ0E7RThDdVFkO0U5Q3pRVTtJQUNJO0lBQ0E7RThDMlFkO0U5QzdRVTtJQUNJO0lBQ0E7RThDK1FkO0U5Q2pSVTtJQUNJO0lBQ0E7RThDbVJkO0U5QzlRRTtJQUNJO0U4Q2dSTjtBQUNGO0E5QzNRUTtFQURKO0lBRVE7RThDOFFWO0FBQ0Y7O0E3Q25UQTs7RUFBQTtBQ0FBOztFQUFBO0E0QzZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDbEU3MUVnQjtFa0U4MUVoQixjM0NuNUVTO0UyQ281RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QVBwdEhJO0VBQ0k7QU9tWVI7QVBqWVE7RUFDSTtFQUNBO0VBQUE7RUFBQTtFQUNBO0VBQUE7TUFBQTtVQUFBO0VBQ0E7TUFBQTtVQUFBO0FPbVlaO0FQaFlRO0VoREtKLHNGQUZpQjtFQUVqQiw4RUFGaUI7RWdERFQ7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLHNCcENiVTtFb0NjVjtFQUNBO0VBQ0Esa0JIckJZO0VHc0JaO01BQUE7VUFBQTtBT2tZWjtBcER4WEk7RTZDckJJO0lBY1E7SUFDQTtJQUNBO0lBQ0E7RU9tWWQ7QUFDRjtBUGpZWTtFQUNJO0VBQ0E7RUFDQTtBT21ZaEI7QXBEcllJO0U2Q0RRO0lBTVE7SUFDQTtJQUNBO0VPb1lsQjtBQUNGO0FQallZO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQSxVQ2hESztBTW1ickI7QXBEblpJO0U2Q1dRO0lBUVE7SUFDQTtFT29ZbEI7QUFDRjtBUGpZWTtFQUNJO0FPbVloQjtBUGhZWTtFQUNJO0FPa1loQjtBUC9YWTtFQUNJO0FPaVloQjtBUDdYUTtFL0N0REo7RUFDQTtFQUNBO0UrQ3NEUTtBT2lZWjtBUDlYZ0I7RUFDSSx5QnBDM0VDO0VvQzRFRCxxQnBDNUVDO0EyQzRjckI7QVA5WG9CO0UvQzFFaEI7RUFDQTtFQUNBO0FzRDJjSjtBUC9Yb0I7RUFDSSx5QnBDbkRBO0VvQ29EQSxxQnBDcERBO0EyQ3FieEI7QVA5WG9CO0VBQ0ksc0JwQ25GRjtFb0NvRkUscUJwQzlFRDtBMkM4Y3ZCO0FQNVhnQjtFQUNJO0FPOFhwQjtBUDVYb0I7RUFDSTtBTzhYeEI7QVB2WGdCO0VBRUksc0JwQ3JHRTtFb0NzR0YscUJwQ2xHRztFb0NtR0g7QU93WHBCO0FQclhnQjtFQUNJLHlCcEN2R0c7QTJDOGR2QjtBUHBYZ0I7RUFDSSxjcEN6R0c7RW9DMEdIO0FPc1hwQjtBUGpYUTtFL0MzR0o7RUFDQTtFQUNBO0VEREEsMkVBRmlCO0VBRWpCLG1FQUZpQjtFZ0QrR1QsV3BDeEhVO0VvQ3lIVjtBT3FYWjtBUG5YWTtFQUNJLGNwQ3RITztFb0N1SFA7QU9xWGhCO0FQalhRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7S0FBQTtNQUFBO1VBQUE7RUFDQTtNQUFBO1VBQUE7QU9tWFo7QVBqWFk7RUFDSTtNQUFBO1VBQUE7RUFDQTtFQUFBO0VBQUE7RUFDQTtNQUFBO1VBQUE7RUFDQTtNQUFBO1VBQUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBT21YaEI7QVBoWFk7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBLGNwQ3JKTztFb0NzSlA7QU9rWGhCO0FQL1dZO0VBQ0k7RUFDQSxjcEN0SVE7QTJDdWZ4QjtBUDdXUTtFQUNJO0FPK1daO0FQNVdRO0VBQ0k7QU84V1o7QVAzV1E7RUFDSTtFQUNBO0VBQ0E7QU82V1o7QXBEbGdCSTtFNkNrSkk7SUFNUTtFTzhXZDtBQUNGO0FQM1dRO0VBQ0k7QU82V1o7QVAxV2dCO0VBQ0kscUJwQ3RMRztBMkNraUJ2QjtBcEQ3Z0JJO0U2Q3NLSTtJQUVRO0VPeVdkO0FBQ0Y7QVB0V2dCO0VBQ0kscUJwQ2xNRztBMkMwaUJ2QjtBUG5XUTtFQUNJLHFCcENsTlE7QTJDdWpCcEI7QVBqV1k7RUFDSSxxQnBDeE5LO0EyQzJqQnJCO0FQaldnQjtFQUNJLHFCcEMzTEk7QTJDOGhCeEI7QVAvVlk7O0VBRUkscUJwQ3hOTztBMkN5akJ2Qjs7QVBqa0JJO0VBQ0k7QU9va0JSO0FQbGtCUTtFQUNJO0VBQ0E7RUFBQTtFQUFBO0VBQ0E7RUFBQTtNQUFBO1VBQUE7RUFDQTtNQUFBO1VBQUE7QU9va0JaO0FQamtCUTtFaERLSixzRkFGaUI7RUFFakIsOEVBRmlCO0VnRERUO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxzQnBDYlU7RW9DY1Y7RUFDQTtFQUNBLGtCSHJCWTtFR3NCWjtNQUFBO1VBQUE7QU9ta0JaO0FwRHpqQkk7RTZDckJJO0lBY1E7SUFDQTtJQUNBO0lBQ0E7RU9va0JkO0FBQ0Y7QVBsa0JZO0VBQ0k7RUFDQTtFQUNBO0FPb2tCaEI7QXBEdGtCSTtFNkNEUTtJQU1RO0lBQ0E7SUFDQTtFT3FrQmxCO0FBQ0Y7QVBsa0JZO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQSxVQ2hESztBTW9uQnJCO0FwRHBsQkk7RTZDV1E7SUFRUTtJQUNBO0VPcWtCbEI7QUFDRjtBUGxrQlk7RUFDSTtBT29rQmhCO0FQamtCWTtFQUNJO0FPbWtCaEI7QVBoa0JZO0VBQ0k7QU9ra0JoQjtBUDlqQlE7RS9DdERKO0VBQ0E7RUFDQTtFK0NzRFE7QU9ra0JaO0FQL2pCZ0I7RUFDSSx5QnBDM0VDO0VvQzRFRCxxQnBDNUVDO0EyQzZvQnJCO0FQL2pCb0I7RS9DMUVoQjtFQUNBO0VBQ0E7QXNENG9CSjtBUGhrQm9CO0VBQ0kseUJwQ25EQTtFb0NvREEscUJwQ3BEQTtBMkNzbkJ4QjtBUC9qQm9CO0VBQ0ksc0JwQ25GRjtFb0NvRkUscUJwQzlFRDtBMkMrb0J2QjtBUDdqQmdCO0VBQ0k7QU8rakJwQjtBUDdqQm9CO0VBQ0k7QU8rakJ4QjtBUHhqQmdCO0VBRUksc0JwQ3JHRTtFb0NzR0YscUJwQ2xHRztFb0NtR0g7QU95akJwQjtBUHRqQmdCO0VBQ0kseUJwQ3ZHRztBMkMrcEJ2QjtBUHJqQmdCO0VBQ0ksY3BDekdHO0VvQzBHSDtBT3VqQnBCO0FQbGpCUTtFL0MzR0o7RUFDQTtFQUNBO0VEREEsMkVBRmlCO0VBRWpCLG1FQUZpQjtFZ0QrR1QsV3BDeEhVO0VvQ3lIVjtBT3NqQlo7QVBwakJZO0VBQ0ksY3BDdEhPO0VvQ3VIUDtBT3NqQmhCO0FQbGpCUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0tBQUE7TUFBQTtVQUFBO0VBQ0E7TUFBQTtVQUFBO0FPb2pCWjtBUGxqQlk7RUFDSTtNQUFBO1VBQUE7RUFDQTtFQUFBO0VBQUE7RUFDQTtNQUFBO1VBQUE7RUFDQTtNQUFBO1VBQUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBT29qQmhCO0FQampCWTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsY3BDckpPO0VvQ3NKUDtBT21qQmhCO0FQaGpCWTtFQUNJO0VBQ0EsY3BDdElRO0EyQ3dyQnhCO0FQOWlCUTtFQUNJO0FPZ2pCWjtBUDdpQlE7RUFDSTtBTytpQlo7QVA1aUJRO0VBQ0k7RUFDQTtFQUNBO0FPOGlCWjtBcERuc0JJO0U2Q2tKSTtJQU1RO0VPK2lCZDtBQUNGO0FQNWlCUTtFQUNJO0FPOGlCWjtBUDNpQmdCO0VBQ0kscUJwQ3RMRztBMkNtdUJ2QjtBcEQ5c0JJO0U2Q3NLSTtJQUVRO0VPMGlCZDtBQUNGO0FQdmlCZ0I7RUFDSSxxQnBDbE1HO0EyQzJ1QnZCO0FQcGlCUTtFQUNJLHFCcENsTlE7QTJDd3ZCcEI7QVBsaUJZO0VBQ0kscUJwQ3hOSztBMkM0dkJyQjtBUGxpQmdCO0VBQ0kscUJwQzNMSTtBMkMrdEJ4QjtBUGhpQlk7O0VBRUkscUJwQ3hOTztBMkMwdkJ2QjtBQW0rRlk7RUFDSTtFQUNBO0VBQ0E7QUFqK0ZoQjtBQXErRlE7RXZEN3RISixrREFGaUI7RUFFakIsMENBRmlCO0V1RGl1SFQ7RUFDQTtBQW4rRlo7QUFzK0ZRO0VBQ0k7QUFwK0ZaO0FBeStGWTtFQUNJLHlCM0MxdkhLO0UyQzJ2SEwscUIzQzN2SEs7RTJDNHZITDtVQUFBO0FBditGaEIsQzs7OztBbEVyeEJBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBaUQ4Tko7O0FqRDNOQTtFQUNJO0FpRDhOSjs7QS9DcE9JO0VBREo7SUFFUTtFK0N3T047QUFDRjs7QS9Dck9BO0VBQ0k7RUFDQTtFQUNBO0ErQ3dPSjtBL0N0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFK0N5T047QUFDRjs7QS9DdE9BO0VBR1k7SUFDSTtJQUNBO0UrQ3VPZDtFL0N6T1U7SUFDSTtJQUNBO0UrQzJPZDtFL0M3T1U7SUFDSTtJQUNBO0UrQytPZDtFL0NqUFU7SUFDSTtJQUNBO0UrQ21QZDtFL0NyUFU7SUFDSTtJQUNBO0UrQ3VQZDtFL0N6UFU7SUFDSTtJQUNBO0UrQzJQZDtFL0M3UFU7SUFDSTtJQUNBO0UrQytQZDtFL0NqUVU7SUFDSTtJQUNBO0UrQ21RZDtFL0NyUVU7SUFDSTtJQUNBO0UrQ3VRZDtFL0N6UVU7SUFDSTtJQUNBO0UrQzJRZDtFL0M3UVU7SUFDSTtJQUNBO0UrQytRZDtFL0NqUlU7SUFDSTtJQUNBO0UrQ21SZDtFL0M5UUU7SUFDSTtFK0NnUk47QUFDRjtBL0MzUVE7RUFESjtJQUVRO0UrQzhRVjtBQUNGOztBOUNuVEE7O0VBQUE7QUNBQTs7RUFBQTtBNkM2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Q25FNzFFZ0I7RW1FODFFaEIsYzVDbjVFUztFNENvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBejZESTtFeEQ1eERBLGtEQUZpQjtFQUVqQiwwQ0FGaUI7RXdEZ3lEYjtFQUNBO0VBQ0E7RUFDQSxzQjVDNXlEYztFNEM2eURkO0VBQ0E7QUF4NkNSO0FBMDZDUTtFQUNJO0VBQ0E7RUFDQTtFQUNBLHdDbkVwd0RnQjtFbUVxd0RoQjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0tBQUE7VUFBQTtBQXg2Q1o7QUEwNkNZO0VBRUkseUJuRXR5RFM7RW1FdXlEVDtBQXo2Q2hCO0FBNjZDUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxjbkVseURXO0VtRW15RFgsVVA5MERTO0VPKzBEVDtBQTM2Q1o7QUE4NkNRO0VBRUk7RUFDQTtBQTc2Q1o7QUFnN0NRO0VBQ0ksd0NuRXB5RGdCO0VtRXF5RGhCO0FBOTZDWjtBQWk3Q1E7RUFDSTtBQS82Q1o7QUFrN0NRO0VBQ0k7QUFoN0NaO0FBK3lHSTtFQUNJO0VBQ0EseUI1Q3B0SGU7RTRDcXRIZixrQlhwdUhnQjtFV3F1SGhCLGM1QzN0SGU7QTRDOGF2QjtBQSt5R1E7RUFDSTtBQTd5R1o7QUFpekdJO0VBQ0k7QUEveUdSO0FBa3pHSTtFQUNJO0VBQ0E7RUFDQTtVQUFBO0FBaHpHUixDOzs7O0FuRW5jQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QWtEOE5KOztBbEQzTkE7RUFDSTtBa0Q4Tko7O0FoRHBPSTtFQURKO0lBRVE7RWdEd09OO0FBQ0Y7O0FoRHJPQTtFQUNJO0VBQ0E7RUFDQTtBZ0R3T0o7QWhEdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RWdEeU9OO0FBQ0Y7O0FoRHRPQTtFQUdZO0lBQ0k7SUFDQTtFZ0R1T2Q7RWhEek9VO0lBQ0k7SUFDQTtFZ0QyT2Q7RWhEN09VO0lBQ0k7SUFDQTtFZ0QrT2Q7RWhEalBVO0lBQ0k7SUFDQTtFZ0RtUGQ7RWhEclBVO0lBQ0k7SUFDQTtFZ0R1UGQ7RWhEelBVO0lBQ0k7SUFDQTtFZ0QyUGQ7RWhEN1BVO0lBQ0k7SUFDQTtFZ0QrUGQ7RWhEalFVO0lBQ0k7SUFDQTtFZ0RtUWQ7RWhEclFVO0lBQ0k7SUFDQTtFZ0R1UWQ7RWhEelFVO0lBQ0k7SUFDQTtFZ0QyUWQ7RWhEN1FVO0lBQ0k7SUFDQTtFZ0QrUWQ7RWhEalJVO0lBQ0k7SUFDQTtFZ0RtUmQ7RWhEOVFFO0lBQ0k7RWdEZ1JOO0FBQ0Y7QWhEM1FRO0VBREo7SUFFUTtFZ0Q4UVY7QUFDRjs7QS9DblRBOztFQUFBO0FDQUE7O0VBQUE7QThDNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0NwRTcxRWdCO0VvRTgxRWhCLGM3Q241RVM7RTZDbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQWFRO0VBQ0kseUI3Q3B0SFc7RTZDcXRIWDtFQUNBO0VBQ0E7QUE5MUdaO0FBaTJHUTtFQUNJLGM3Qy90SFc7RTZDZ3VIWDtBQS8xR1o7QUFrMkdROztFQUVJO0VBQ0E7QUFoMkdaO0F0RGpYSTtFc0Q4c0hJOztJQU1RO0lBQ0E7RUE5MUdkO0FBQ0Y7QUFpMkdRO0VBQ0k7QUEvMUdaO0FBaTJHWTtFQUNJO0FBLzFHaEI7QUFrMkdZO0VBQ0k7QUFoMkdoQjtBQW0yR1k7RUFDSSxjN0MxdkhPO0E2Q3ladkI7QUFvMkdZO0VBQ0ksYzdDOXZITztFNkMrdkhQO0FBbDJHaEI7QUFzMkdRO0VBQ0k7QUFwMkdaO0FBdzJHWTtFQUNJLGM3Q3p3SE87QTZDbWF2QjtBQTQyR1k7RUFDSTtBQTEyR2hCO0FBNjJHWTs7RUFFSTtBQTMyR2hCO0F0RDlYSTtFc0Q2dUhJO0lBRVE7RUE3MkdkO0VBKzJHYzs7OztJQUlJO0lBQ0E7RUE3MkdsQjtFQWczR2M7O0lBRUk7RUE5MkdsQjtFQWkzR2M7SUFDSSxpQmpCcHpIQztJaUJxekhELG9CakJyekhDO0VpQnNjbkI7RUFrM0djO0lBQ0k7RUFoM0dsQjtFQW0zR2M7SUFDSTtJQUNBO0VBajNHbEI7RUFvM0djO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO1FBQUE7RUFsM0dsQjtFQXMzR2tCO0lBQ0k7SUFDQTtJQUNBLGtCWmgxSEE7SVlpMUhBO0lBQ0E7RUFwM0d0QjtBQUNGO0F0RC9iSTtFc0Q2eUhnQjtJQVFRO0lBQ0E7SUFDQTtFQWwzRzFCO0FBQ0Y7QXREL2FJO0VzRHF5SFk7O0lBRUk7SUFDQTtJQUNBLGdCN0MzMUhFO0U2Q3dlcEI7RUFzM0djO0lBQ0k7SUFDQTtJQUNBO0VBcDNHbEI7RUF1M0djO0lBQ0k7SUFBQTtJQUFBO0lBQ0E7UUFBQTtJQUNBO1FBQUE7WUFBQTtJQUNBO0lBQ0EseUI3Qy8xSEc7RTZDMGVyQjtBQUNGO0F0RDFkSTtFc0R5MEhZO0lBUVE7RUFuM0d0QjtBQUNGO0F0RHhjSTtFc0Q2ekhnQjtJQUNJO0VBbDNHdEI7RUFxM0drQjtJQUNJO0lBQ0Esd0NwRXIwSEk7RW9Fa2QxQjtFQXMzR2tCO0lBQ0k7RUFwM0d0QjtBQUNGLEM7Ozs7QXBFM2dCQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QW1EOE5KOztBbkQzTkE7RUFDSTtBbUQ4Tko7O0FqRHBPSTtFQURKO0lBRVE7RWlEd09OO0FBQ0Y7O0FqRHJPQTtFQUNJO0VBQ0E7RUFDQTtBaUR3T0o7QWpEdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RWlEeU9OO0FBQ0Y7O0FqRHRPQTtFQUdZO0lBQ0k7SUFDQTtFaUR1T2Q7RWpEek9VO0lBQ0k7SUFDQTtFaUQyT2Q7RWpEN09VO0lBQ0k7SUFDQTtFaUQrT2Q7RWpEalBVO0lBQ0k7SUFDQTtFaURtUGQ7RWpEclBVO0lBQ0k7SUFDQTtFaUR1UGQ7RWpEelBVO0lBQ0k7SUFDQTtFaUQyUGQ7RWpEN1BVO0lBQ0k7SUFDQTtFaUQrUGQ7RWpEalFVO0lBQ0k7SUFDQTtFaURtUWQ7RWpEclFVO0lBQ0k7SUFDQTtFaUR1UWQ7RWpEelFVO0lBQ0k7SUFDQTtFaUQyUWQ7RWpEN1FVO0lBQ0k7SUFDQTtFaUQrUWQ7RWpEalJVO0lBQ0k7SUFDQTtFaURtUmQ7RWpEOVFFO0lBQ0k7RWlEZ1JOO0FBQ0Y7QWpEM1FRO0VBREo7SUFFUTtFaUQ4UVY7QUFDRjs7QWhEblRBOztFQUFBO0FDQUE7O0VBQUE7QStDNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0NyRTcxRWdCO0VxRTgxRWhCLGM5Q241RVM7RThDbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQW56REk7RTFEbDVEQSxrREFGaUI7RUFFakIsMENBRmlCO0UwRHM1RGI7RUFDQTtFQUNBO0VBQ0E7QUE5aERSO0FBZ2lEUTtFQUNJLHFCOUNoNkRXO0E4Q2tZdkI7QUFpaURRO0VBQ0ksYzlDcDZEVztBOENxWXZCO0FBOGhEUTtFQUNJLGM5Q3A2RFc7QThDcVl2QjtBQThoRFE7RUFDSSxjOUNwNkRXO0E4Q3FZdkI7QUE4aERRO0VBQ0ksYzlDcDZEVztBOENxWXZCO0FBOGhEUTtFQUNJLGM5Q3A2RFc7QThDcVl2QjtBQWtpRFE7RUFDSTtFQUNBO0FBaGlEWjtBQW1pRFE7RUFDSTtBQWppRFo7QUFvaURRO0VBRUkseUJyRWg2RGE7RXFFaTZEYjtBQW5pRFosQzs7OztBckUxWkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0FvRDhOSjs7QXBEM05BO0VBQ0k7QW9EOE5KOztBbERwT0k7RUFESjtJQUVRO0VrRHdPTjtBQUNGOztBbERyT0E7RUFDSTtFQUNBO0VBQ0E7QWtEd09KO0FsRHRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0VrRHlPTjtBQUNGOztBbER0T0E7RUFHWTtJQUNJO0lBQ0E7RWtEdU9kO0VsRHpPVTtJQUNJO0lBQ0E7RWtEMk9kO0VsRDdPVTtJQUNJO0lBQ0E7RWtEK09kO0VsRGpQVTtJQUNJO0lBQ0E7RWtEbVBkO0VsRHJQVTtJQUNJO0lBQ0E7RWtEdVBkO0VsRHpQVTtJQUNJO0lBQ0E7RWtEMlBkO0VsRDdQVTtJQUNJO0lBQ0E7RWtEK1BkO0VsRGpRVTtJQUNJO0lBQ0E7RWtEbVFkO0VsRHJRVTtJQUNJO0lBQ0E7RWtEdVFkO0VsRHpRVTtJQUNJO0lBQ0E7RWtEMlFkO0VsRDdRVTtJQUNJO0lBQ0E7RWtEK1FkO0VsRGpSVTtJQUNJO0lBQ0E7RWtEbVJkO0VsRDlRRTtJQUNJO0VrRGdSTjtBQUNGO0FsRDNRUTtFQURKO0lBRVE7RWtEOFFWO0FBQ0Y7O0FqRG5UQTs7RUFBQTtBQ0FBOztFQUFBO0FnRDZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDdEU3MUVnQjtFc0U4MUVoQixjL0NuNUVTO0UrQ281RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFZSTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0FBNzFHUjtBQSsxR1E7RUFDSTtBQTcxR1o7QXhEM1dJO0V3RHVzSEk7SUFJUTtFQTUxR2Q7QUFDRjtBQSsxR1E7RUFDSTtBQTcxR1o7QUFnMkdRO0VBQ0k7QUE5MUdaO0FBaTJHUTtFQUNJO0FBLzFHWjtBQWsyR1E7RUFDSTtBQWgyR1o7QUFtMkdRO0VBQ0k7QUFqMkdaO0FBbzJHUTtFQUNJO0FBbDJHWjtBQXEyR1E7RUFDSTtBQW4yR1o7QXhEcllJO0V3RHV1SEk7SUFJUTtFQWwyR2Q7QUFDRjtBQXEyR1E7RUFDSTtBQW4yR1o7QXhEN1lJO0V3RCt1SEk7SUFJUTtFQWwyR2Q7QUFDRjtBQXEyR1E7RUFDSTtBQW4yR1o7QXhEclpJO0V3RHV2SEk7SUFJUTtFQWwyR2Q7QUFDRjtBQXEyR1E7RUFDSTtBQW4yR1o7QXhEN1pJO0V3RCt2SEk7SUFJUTtFQWwyR2Q7QUFDRjtBQXEyR1E7RUFDSTtFQUNBO0FBbjJHWjtBeER0YUk7RXdEdXdISTtJQUtRO0lBQ0E7RUFsMkdkO0FBQ0Y7QUFxMkdRO0VBQ0k7QUFuMkdaO0FBczJHUTtFQUNJO0VBQ0E7QUFwMkdaO0F4RG5iSTtFd0RxeEhJO0lBS1E7SUFDQTtFQW4yR2Q7QUFDRjtBQXMyR1E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBcDJHWjtBQXUyR1E7RUFDSTtFQUNBO1VBQUE7QUFyMkdaO0FBdzJHUTtFQUNJO0FBdDJHWixDOzs7O0F0RTFlQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QXFEOE5KOztBckQzTkE7RUFDSTtBcUQ4Tko7O0FuRHBPSTtFQURKO0lBRVE7RW1Ed09OO0FBQ0Y7O0FuRHJPQTtFQUNJO0VBQ0E7RUFDQTtBbUR3T0o7QW5EdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RW1EeU9OO0FBQ0Y7O0FuRHRPQTtFQUdZO0lBQ0k7SUFDQTtFbUR1T2Q7RW5Eek9VO0lBQ0k7SUFDQTtFbUQyT2Q7RW5EN09VO0lBQ0k7SUFDQTtFbUQrT2Q7RW5EalBVO0lBQ0k7SUFDQTtFbURtUGQ7RW5EclBVO0lBQ0k7SUFDQTtFbUR1UGQ7RW5EelBVO0lBQ0k7SUFDQTtFbUQyUGQ7RW5EN1BVO0lBQ0k7SUFDQTtFbUQrUGQ7RW5EalFVO0lBQ0k7SUFDQTtFbURtUWQ7RW5EclFVO0lBQ0k7SUFDQTtFbUR1UWQ7RW5EelFVO0lBQ0k7SUFDQTtFbUQyUWQ7RW5EN1FVO0lBQ0k7SUFDQTtFbUQrUWQ7RW5EalJVO0lBQ0k7SUFDQTtFbURtUmQ7RW5EOVFFO0lBQ0k7RW1EZ1JOO0FBQ0Y7QW5EM1FRO0VBREo7SUFFUTtFbUQ4UVY7QUFDRjs7QWxEblRBOztFQUFBO0FDQUE7O0VBQUE7QWlENkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0N2RTcxRWdCO0V1RTgxRWhCLGNoRG41RVM7RWdEbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQWFRO0VBQ0k7QUE5MUdaO0FBaTJHUTtFQUNJO0VBQ0E7RUFDQSxjaER6dEhXO0VnRDB0SFg7QUEvMUdaO0F6RHBWSTtFeURxckhRO0lBRVE7RUEvMUdsQjtBQUNGO0F6RGhYSTtFeURrdEhRO0lBRVE7RUFoMkdsQjtBQUNGO0F6RDlWSTtFeUQrcUhJO0lBbUJRO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0VBaDJHZDtFQWsyR2M7SUFDSTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0VBaDJHbEI7RUFxMkdrQjtJQUNJO0lBQ0E7RUFuMkd0QjtBQUNGO0FBdzJHUTtFQUNJO0VBQ0E7RUFDQTtBQXQyR1o7QUF5MkdRO0VBQ0k7RUFDQTtFQUNBO0FBdjJHWjtBekRyWkk7RXlEeXZISTtJQU1RO0lBQ0E7RUF0MkdkO0FBQ0Y7QUF5MkdRO0VBQ0k7RUFDQTtBQXYyR1o7QXpEL1pJO0V5RG93SEk7SUFLUTtFQXQyR2Q7QUFDRjtBQXkyR1E7RUFDSSxjaEQ5eUhTO0VnRCt5SFQ7QUF2MkdaO0F6RHhhSTtFeUQ2d0hJO0lBS1E7RUF0MkdkO0FBQ0Y7QUF5MkdRO0VBQ0ksY2hEN3lIVztFZ0Q4eUhYO0VBQ0E7QUF2MkdaO0FBMDJHUTtFQUNJO0VBQ0E7QUF4MkdaO0FBMjJHUTtFQUNJO0FBejJHWjtBQTQyR1E7RUFDSTtFQUNBO0VBQ0E7QUExMkdaO0F6RDliSTtFeURxeUhJO0lBTVE7SUFDQTtFQXoyR2Q7QUFDRjtBQTQyR1E7RUFDSTtBQTEyR1o7QXpEdmNJO0V5RGd6SEk7SUFJUTtFQXoyR2Q7QUFDRjtBekQ1Y0k7RXlEZ3pISTtJQVFRO0VBeDJHZDtBQUNGO0FBMjJHUTtFQUNJO0FBejJHWjtBQTQyR1E7RUFDSSxXaEQ1MUhVO0FnRGtmdEI7QUE2MkdRO0VBQ0k7RUFDQTtBQTMyR1o7QXpEM2RJO0V5RG8wSEk7SUFLUTtFQTEyR2Q7QUFDRjtBQTYyR1E7RUFDSTtFQUNBO0VBQ0E7RUFDQSxjaER0MkhXO0FnRDJmdkI7QXpEL2NJO0V5RHN6SEk7SUFPUTtJQUNBO0lBQ0E7RUExMkdkO0VBNDJHYztJQUVJO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7WUFBQTtJQUNBO0lBQ0E7SUFDQSxtQmhEdDNIRztFZ0QyZ0JyQjtFQTgyR2M7SUFDSTtZQUFBO0VBNTJHbEI7RUErMkdjO0lBQ0k7RUE3MkdsQjtBQUNGO0FBaTNHUTtFQUNJLGNoRHA0SFc7RWdEcTRIWDtBQS8yR1o7QXpEamdCSTtFeUQ4MkhJO0lBS1E7RUE5MkdkO0FBQ0Y7QUFpM0dRO0VBQ0ksY2hEdjVIUTtFZ0R3NUhSO0VBQ0EsdUNoRGozSFk7RWdEazNIWjtBQS8yR1o7QXpENWdCSTtFeUR1M0hJO0lBT1E7SUFDQTtFQTkyR2Q7QUFDRjtBQWkzR1E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBLGNoRDc1SFc7RWdEODVIWDtBQS8yR1o7QXpEMWhCSTtFeURtNEhJO0lBU1E7SUFDQTtFQTkyR2Q7QUFDRjtBQWkzR1E7RUFDSTtFQUNBO0VBQ0E7QUEvMkdaLEM7Ozs7QXZFcmtCQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QXNEOE5KOztBdEQzTkE7RUFDSTtBc0Q4Tko7O0FwRHBPSTtFQURKO0lBRVE7RW9Ed09OO0FBQ0Y7O0FwRHJPQTtFQUNJO0VBQ0E7RUFDQTtBb0R3T0o7QXBEdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RW9EeU9OO0FBQ0Y7O0FwRHRPQTtFQUdZO0lBQ0k7SUFDQTtFb0R1T2Q7RXBEek9VO0lBQ0k7SUFDQTtFb0QyT2Q7RXBEN09VO0lBQ0k7SUFDQTtFb0QrT2Q7RXBEalBVO0lBQ0k7SUFDQTtFb0RtUGQ7RXBEclBVO0lBQ0k7SUFDQTtFb0R1UGQ7RXBEelBVO0lBQ0k7SUFDQTtFb0QyUGQ7RXBEN1BVO0lBQ0k7SUFDQTtFb0QrUGQ7RXBEalFVO0lBQ0k7SUFDQTtFb0RtUWQ7RXBEclFVO0lBQ0k7SUFDQTtFb0R1UWQ7RXBEelFVO0lBQ0k7SUFDQTtFb0QyUWQ7RXBEN1FVO0lBQ0k7SUFDQTtFb0QrUWQ7RXBEalJVO0lBQ0k7SUFDQTtFb0RtUmQ7RXBEOVFFO0lBQ0k7RW9EZ1JOO0FBQ0Y7QXBEM1FRO0VBREo7SUFFUTtFb0Q4UVY7QUFDRjs7QW5EblRBOztFQUFBO0FDQUE7O0VBQUE7QWtENkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0N4RTcxRWdCO0V3RTgxRWhCLGNqRG41RVM7RWlEbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQVlJO0VBQ0k7RUFDQTtFQUNBLFlyRWx0SFk7QXFFcVhwQjtBQSsxR1E7RUFDSTtBQTcxR1o7QUFnMkdRO0VBQ0k7QUE5MUdaO0FBaTJHUTtFQUNJO0VBQ0E7QUEvMUdaO0FBazJHUTtFNURwdUhKO0VBQ0E7RUFDQTtFRERBLGdIQUZpQjtFQUVqQix3R0FGaUI7RUFFakIsZ0dBRmlCO0VBRWpCLHFJQUZpQjtFNkR3dUhUO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtVQUFBO0FBOTFHWjtBQWcyR1k7RTVEenZIUjtFQUNBO0VBQ0E7RTREeXZIWTtVQUFBO0FBNTFHaEI7QTFEbllJO0UwRG10SEk7SUFnQlE7SUFDQTtJQUNBO1lBQUE7SUFDQTtJQUFBO0k1RGx3SFo7SUFDQTtJQUNBO0k0RGt3SFksVVp4d0hLO0VZOGFuQjtBQUNGO0FBNDFHWTtFQUNJLFlyRWp1SGdCO0FxRXVZaEM7QUE4MUdRO0VBQ0k7RUFDQTtBQTUxR1o7QUErMUdRO0VBQ0k7QUE3MUdaO0ExRHpaSTtFMERxdkhJO0lBSVE7SUFDQSxtQmpEdndIUTtFaUQyYXRCO0FBQ0Y7QTFEL1pJO0UwRHF2SEk7SUFTUTtFQTMxR2Q7QUFDRjtBQTgxR1E7RUFDSTtNQUFBO1VBQUE7RUFDQTtFQUNBO0VBQ0E7QUE1MUdaO0ExRDFhSTtFMERrd0hJO0lBT1E7SUFDQTtFQTMxR2Q7QUFDRjtBMURoYkk7RTBEa3dISTtJQVlRO1FBQUE7WUFBQTtFQTExR2Q7QUFDRjtBMURyYkk7RTBEa3dISTtJQWdCUTtFQXoxR2Q7QUFDRjtBQTQxR1E7RUFDSSxnQmpEbHpIVTtFaURtekhWO0FBMTFHWjtBMUR2YUk7RTBEK3ZISTtJQUtRO0VBejFHZDtBQUNGO0FBMjFHWTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0FBejFHaEI7QTFEemNJO0UwRDh4SFE7SUFPUTtJQUNBO0VBeDFHbEI7QUFDRjtBQTQxR1E7RUFDSTtFQUNBO01BQUE7VUFBQTtBQTExR1o7QTFEbmRJO0UwRDJ5SEk7SUFLUTtRQUFBO1lBQUE7RUF6MUdkO0FBQ0Y7QTFEeGRJO0UwRDJ5SEk7SUFTUTtFQXgxR2Q7QUFDRjtBQTIxR1E7RUFDSTtFQUNBO0FBejFHWjtBMURqZUk7RTBEd3pISTtJQUtRO0lBQ0E7RUF4MUdkO0FBQ0Y7QUEyMUdRO0VBQ0k7QUF6MUdaO0ExRDFlSTtFMERrMEhJO0lBSVEsbUJqRG4xSFE7SWlEbzFIUjtZQUFBO0lBQ0E7RUF4MUdkO0FBQ0Y7QUEwMUdZO0VBQ0k7RUFDQSx5QmpEcDJITztBaUQ0Z0J2QjtBMURyZkk7RTBEMjBIUTtJQUtRO0VBdjFHbEI7QUFDRjtBQTAxR29CO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQUE7RUFBQTtFQUNBO01BQUE7VUFBQTtFQUNBO01BQUE7VUFBQTtFQUNBO0FBeDFHeEI7QUEwMUd3QjtFQUNJO0FBeDFHNUI7QUE2MUc0Qjs7RUFDSTtBQTExR2hDO0FBODFHd0I7RUFDSSx5QmpEbDRITDtFaURtNEhLLGNqRDUzSEw7QWlEZ2lCdkI7QUErMUd3QjtFQUNJLHlCakRoNEhMO0VpRGk0SEssV2pENTRITjtBaUQraUJ0QjtBQW8yR1E7RUFDSTtBQWwyR1o7QTFEdmhCSTtFMER3M0hJO0lBSVE7RUFqMkdkO0VBbTJHYztJQUNJO0VBajJHbEI7QUFDRjtBMUQvaEJJO0UwRHczSEk7SUFZUTtJQUNBO0lBQ0E7SUFDQTtFQWoyR2Q7QUFDRjtBQW0yR1k7RUFDSTtFQUNBLFdqRHo2SE07QWlEd2tCdEI7QTFEM2lCSTtFMEQwNEhRO0lBS1E7RUFoMkdsQjtBQUNGO0ExRGhqQkk7RTBEbTVIWTtJQUdRO0VBbDJHdEI7QUFDRjtBQW8yR29CO0VBQ0ksY2pEMTZIRDtFaUQyNkhDO0FBbDJHeEI7QUF3MkdRO0VBQ0k7QUF0MkdaO0ExRDVqQkk7RTBEaTZISTtJQUlRO0VBcjJHZDtBQUNGO0FBdzJHUTtFQUNJO0FBdDJHWjtBMURwa0JJO0UwRHk2SEk7SUFJUTtFQXIyR2Q7QUFDRjtBMUR6a0JJO0UwRHk2SEk7SUFRUTtFQXAyR2Q7QUFDRjtBMUQ5a0JJO0UwRHk2SEk7SUFZUTtJQUNBO0VBbjJHZDtBQUNGO0FBczJHUTtFQUNJO0VBQUE7RUFBQTtFQUNBO01BQUE7VUFBQTtFQUNBLGNqRG45SFc7RWlEbzlIWDtFQUNBO0VBQ0E7RUFDQTtBQXAyR1o7QTFEN2xCSTtFMEQwN0hJO0lBVVE7STdEcDlIWiwyRUFGaUI7SUFFakIsbUVBRmlCO0k2RHc5SEw7SUFDQTtJQUNBLGtCaEJ4K0hRO0lnQnkrSFI7SUFDQTtJQUNBO0VBbjJHZDtFQXEyR2M7SUFFSSxxQmpELytIQztJaURnL0hELGNqRGgvSEM7RWlENG9CbkI7QUFDRjtBQXcyR1E7RUFDSTtFQUFBO0VBQUE7RUFDQTtFQUFBO01BQUE7VUFBQTtFQUNBO01BQUE7VUFBQTtFQUNBLGNqRC8rSFc7RWlEZy9IWDtFQUNBO0VBQ0E7QUF0MkdaO0ExRHRuQkk7RTBEcTlISTtJQVVRO0lBQUE7UUFBQTtZQUFBO0lBQ0E7SUFDQTtFQXIyR2Q7QUFDRjtBQXUyR1k7RUFDSTtBQXIyR2hCO0ExRGhvQkk7RTBEbytIUTtJQUlRO0VBcDJHbEI7QUFDRjtBQXcyR1E7RUFDSSxjakRuZ0lXO0FpRDZwQnZCO0FBdzJHWTtFQUNJLFdqRDVnSU07QWlEc3FCdEIsQzs7OztBeEUzcUJBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBdUQ4Tko7O0F2RDNOQTtFQUNJO0F1RDhOSjs7QXJEcE9JO0VBREo7SUFFUTtFcUR3T047QUFDRjs7QXJEck9BO0VBQ0k7RUFDQTtFQUNBO0FxRHdPSjtBckR0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFcUR5T047QUFDRjs7QXJEdE9BO0VBR1k7SUFDSTtJQUNBO0VxRHVPZDtFckR6T1U7SUFDSTtJQUNBO0VxRDJPZDtFckQ3T1U7SUFDSTtJQUNBO0VxRCtPZDtFckRqUFU7SUFDSTtJQUNBO0VxRG1QZDtFckRyUFU7SUFDSTtJQUNBO0VxRHVQZDtFckR6UFU7SUFDSTtJQUNBO0VxRDJQZDtFckQ3UFU7SUFDSTtJQUNBO0VxRCtQZDtFckRqUVU7SUFDSTtJQUNBO0VxRG1RZDtFckRyUVU7SUFDSTtJQUNBO0VxRHVRZDtFckR6UVU7SUFDSTtJQUNBO0VxRDJRZDtFckQ3UVU7SUFDSTtJQUNBO0VxRCtRZDtFckRqUlU7SUFDSTtJQUNBO0VxRG1SZDtFckQ5UUU7SUFDSTtFcURnUk47QUFDRjtBckQzUVE7RUFESjtJQUVRO0VxRDhRVjtBQUNGOztBcERuVEE7O0VBQUE7QUNBQTs7RUFBQTtBbUQ2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Q3pFNzFFZ0I7RXlFODFFaEIsY2xEbjVFUztFa0RvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBWUk7RUFDSTtFQUNBO0VBQUE7RUFBQTtBQTcxR1I7QUErMUdRO0VBQ0k7QUE3MUdaO0EzRHpXSTtFMkRxc0hJO0lBR1E7RUEzMUdkO0FBQ0Y7QUE4MUdRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7QUE1MUdaO0FBODFHWTtFQUNJO1VBQUE7QUE1MUdoQjtBQSsxR1k7RUFDSTtFQUVBLGNsRHp1SE87QWtEMll2QjtBQWcyR2dCO0VBQ0k7RUFDQTtFQUNBO0FBOTFHcEI7QTNEaFlJO0UyRDJ0SFk7SUFNUTtJQUNBO0lBQ0E7RUE3MUd0QjtBQUNGO0FBaTJHWTtFQUNJO0FBLzFHaEI7QUFrMkdZO0VBQ0k7VUFBQTtBQWgyR2hCO0FBbTJHWTtFQUNJO0FBajJHaEI7QUFxMkdRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQSxjbEQvd0hXO0VrRGd4SFg7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFOURseEhSLDJDQUZpQjtFQUVqQixtQ0FGaUI7QThEa2JyQjtBM0RoYUk7RTJEcXZISTtJQWlCUTtFQWwyR2Q7QUFDRjtBQW8yR1k7RUFDSTtBQWwyR2hCO0FBcTJHWTtFQUNJO0FBbjJHaEI7QUFzMkdZO0VBQ0k7QUFwMkdoQjtBQXMyR2dCO0VBQ0ksY2xEMXlIRztBa0RzY3ZCO0FBeTJHUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQXYyR1osQzs7OztBekV6ZEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0F3RDhOSjs7QXhEM05BO0VBQ0k7QXdEOE5KOztBdERwT0k7RUFESjtJQUVRO0VzRHdPTjtBQUNGOztBdERyT0E7RUFDSTtFQUNBO0VBQ0E7QXNEd09KO0F0RHRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0VzRHlPTjtBQUNGOztBdER0T0E7RUFHWTtJQUNJO0lBQ0E7RXNEdU9kO0V0RHpPVTtJQUNJO0lBQ0E7RXNEMk9kO0V0RDdPVTtJQUNJO0lBQ0E7RXNEK09kO0V0RGpQVTtJQUNJO0lBQ0E7RXNEbVBkO0V0RHJQVTtJQUNJO0lBQ0E7RXNEdVBkO0V0RHpQVTtJQUNJO0lBQ0E7RXNEMlBkO0V0RDdQVTtJQUNJO0lBQ0E7RXNEK1BkO0V0RGpRVTtJQUNJO0lBQ0E7RXNEbVFkO0V0RHJRVTtJQUNJO0lBQ0E7RXNEdVFkO0V0RHpRVTtJQUNJO0lBQ0E7RXNEMlFkO0V0RDdRVTtJQUNJO0lBQ0E7RXNEK1FkO0V0RGpSVTtJQUNJO0lBQ0E7RXNEbVJkO0V0RDlRRTtJQUNJO0VzRGdSTjtBQUNGO0F0RDNRUTtFQURKO0lBRVE7RXNEOFFWO0FBQ0Y7O0FyRG5UQTs7RUFBQTtBQ0FBOztFQUFBO0FvRDZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDMUU3MUVnQjtFMEU4MUVoQixjbkRuNUVTO0VtRG81RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUEvbkRJO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQSxZdkVyakV1QjtBdUVtVy9CLEM7Ozs7QTFFellBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBeUQ4Tko7O0F6RDNOQTtFQUNJO0F5RDhOSjs7QXZEcE9JO0VBREo7SUFFUTtFdUR3T047QUFDRjs7QXZEck9BO0VBQ0k7RUFDQTtFQUNBO0F1RHdPSjtBdkR0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFdUR5T047QUFDRjs7QXZEdE9BO0VBR1k7SUFDSTtJQUNBO0V1RHVPZDtFdkR6T1U7SUFDSTtJQUNBO0V1RDJPZDtFdkQ3T1U7SUFDSTtJQUNBO0V1RCtPZDtFdkRqUFU7SUFDSTtJQUNBO0V1RG1QZDtFdkRyUFU7SUFDSTtJQUNBO0V1RHVQZDtFdkR6UFU7SUFDSTtJQUNBO0V1RDJQZDtFdkQ3UFU7SUFDSTtJQUNBO0V1RCtQZDtFdkRqUVU7SUFDSTtJQUNBO0V1RG1RZDtFdkRyUVU7SUFDSTtJQUNBO0V1RHVRZDtFdkR6UVU7SUFDSTtJQUNBO0V1RDJRZDtFdkQ3UVU7SUFDSTtJQUNBO0V1RCtRZDtFdkRqUlU7SUFDSTtJQUNBO0V1RG1SZDtFdkQ5UUU7SUFDSTtFdURnUk47QUFDRjtBdkQzUVE7RUFESjtJQUVRO0V1RDhRVjtBQUNGOztBdERuVEE7O0VBQUE7QUNBQTs7RUFBQTtBcUQ2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3QzNFNzFFZ0I7RTJFODFFaEIsY3BEbjVFUztFb0RvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBWUk7RUFDSTtBQTcxR1I7QTdEcldJO0U2RGlzSEE7SUFJUTtFQTUxR1Y7QUFDRjtBQTgxR007RUFQRjtJQVFJO0VBMzFHTjtBQUNGO0FBNjFHTTtFQUNFO0VBQ0E7QUEzMUdSO0FBODFHUTtFQUNJO0VBQUE7RUFBQTtFQUNBO0VBQ0E7RUFBQTtNQUFBO1VBQUE7RUFDQTtNQUFBO1VBQUE7QUE1MUdaO0FBODFHWTtFQUNJO01BQUE7VUFBQTtBQTUxR2hCO0FBZzJHUTtFQUNJO0FBOTFHWjtBN0QvWEk7RTZENHRISTtJQUlRO0VBNzFHZDtBQUNGO0FBZzJHUTtFQUNJO0FBOTFHWjtBN0R2WUk7RTZEb3VISTtJQUlRO0VBNzFHZDtBQUNGO0E3RDVZSTtFNkRvdUhJO0lBUVE7RUE1MUdkO0FBQ0Y7QUErMUdRO0VBQ0k7RUFDQSx5QnBEbndIVztBb0RzYXZCO0E3RHJaSTtFNkRndkhJO0lBS1E7RUE1MUdkO0VBODFHYztJQUNJLHNCcERueEhFO0VvRHVicEI7QUFDRjtBQSsxR1k7RUFDSTtBQTcxR2hCO0E3RGhhSTtFNkQ0dkhRO0lBSVE7RUE1MUdsQjtBQUNGO0FBKzFHWTtFQUNJLHNCcERoeUhNO0FvRG1jdEI7QUErMUdnQjtFQUNJO0FBNzFHcEI7QUFpMkdZO0VBQ0ksd0MzRXh2SFk7QTJFeVo1QjtBQW0yR1E7RUFDSTtFQUNBO0FBajJHWjtBQW8yR1E7RUFDSTtBQWwyR1o7QTdEcmJJO0U2RHN4SEk7SUFJUTtFQWoyR2Q7QUFDRjtBQW8yR1E7RUFDSTtFQUNBO0VBQ0E7QUFsMkdaO0E3RC9iSTtFNkQ4eEhJO0lBTVE7RUFqMkdkO0FBQ0Y7QTdEcGNJO0U2RDh4SEk7SUFVUTtJQUNBO0VBaDJHZDtBQUNGO0FBazJHWTtFQUNJLGNwRGwwSE87RW9EbTBIUDtBQWgyR2hCO0FBbTJHWTtFQUNJO0FBajJHaEI7QTdEamRJO0U2RGl6SFE7SUFJUTtFQWgyR2xCO0FBQ0Y7QUFvMkdRO0VBRUksY3BEajFIVztFb0RrMUhYO0VBQ0E7RUFDQTtBQW4yR1o7QTdENWRJO0U2RDB6SEk7SUFRUTtFQWwyR2Q7QUFDRjtBQXEyR1E7RUFDSTtBQW4yR1o7QTdEcGVJO0U2RHMwSEk7SUFJUTtFQWwyR2Q7QUFDRjtBQXEyR1E7RUFDSTtFQUNBO0VBQ0E7QUFuMkdaO0E3RDllSTtFNkQ4MEhJO0lBTVE7RUFsMkdkO0FBQ0YsQzs7OztBM0VuaEJBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBMEQ4Tko7O0ExRDNOQTtFQUNJO0EwRDhOSjs7QXhEcE9JO0VBREo7SUFFUTtFd0R3T047QUFDRjs7QXhEck9BO0VBQ0k7RUFDQTtFQUNBO0F3RHdPSjtBeER0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFd0R5T047QUFDRjs7QXhEdE9BO0VBR1k7SUFDSTtJQUNBO0V3RHVPZDtFeER6T1U7SUFDSTtJQUNBO0V3RDJPZDtFeEQ3T1U7SUFDSTtJQUNBO0V3RCtPZDtFeERqUFU7SUFDSTtJQUNBO0V3RG1QZDtFeERyUFU7SUFDSTtJQUNBO0V3RHVQZDtFeER6UFU7SUFDSTtJQUNBO0V3RDJQZDtFeEQ3UFU7SUFDSTtJQUNBO0V3RCtQZDtFeERqUVU7SUFDSTtJQUNBO0V3RG1RZDtFeERyUVU7SUFDSTtJQUNBO0V3RHVRZDtFeER6UVU7SUFDSTtJQUNBO0V3RDJRZDtFeEQ3UVU7SUFDSTtJQUNBO0V3RCtRZDtFeERqUlU7SUFDSTtJQUNBO0V3RG1SZDtFeEQ5UUU7SUFDSTtFd0RnUk47QUFDRjtBeEQzUVE7RUFESjtJQUVRO0V3RDhRVjtBQUNGOztBdkRuVEE7O0VBQUE7QUNBQTs7RUFBQTtBc0Q2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3QzVFNzFFZ0I7RTRFODFFaEIsY3JEbjVFUztFcURvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBY0k7RUFDSTtFQUNBLFl6RTlzSGlCO0F5RStXekI7QTlEdFdJO0U4RG1zSEE7SUFLUTtFQTkxR1Y7QUFDRjtBQWcyR1E7RWhFNXRISjtFQUNBO0VBQ0E7RUREQSwyRUFGaUI7RUFFakIsbUVBRmlCO0VpRWd1SFQ7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLDBDckRyc0hZO0FxRHlXeEI7QUErMUdRO0VBQ0k7RUFBQTtFQUFBO0VBQ0E7RUFBQTtNQUFBO1VBQUE7RTVEdnVIUjtVQUFBO0VKRkE7RUFDQTtFQUNBO0VEREEsa0dBRmlCO0VBRWpCLDBGQUZpQjtFaUU4dUhUO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxzQnJENXZIVTtFcUQ2dkhWO0VBQ0E7QUEzMUdaO0E5RHhZSTtFOERzdEhJO0lqRXR1SEosbUdBRmlCO0lBRWpCLDJGQUZpQjtJaUV5dkhMO0lBQ0E7SUFDQSxpQkF6Q1k7RUFqekcxQjtBQUNGO0FBNjFHUTtFQUNJO0VBQUE7RUFBQTtFQUNBO0VBQUE7TUFBQTtVQUFBO0VBQ0E7TUFBQTtVQUFBO0VBQ0E7RUFDQTtFQUNBO0FBMzFHWjtBQTgxR1E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUE1MUdaO0FBKzFHUTtFQUNJO0VBQ0E7TUFBQTtBQTcxR1o7QTlEcGFJO0U4RCt2SEk7SUFLUTtRQUFBO1lBQUE7RUE1MUdkO0FBQ0Y7QTlEemFJO0U4RHd3SEk7SUFFUTtFQTcxR2Q7QUFDRjtBQWcyR1E7RUFDSTtFQUFBO0VBQUE7RUFDQTtNQUFBO1VBQUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUE5MUdaO0FBZzJHWTtFQUNJO0FBOTFHaEI7QUFrMkdRO0VBQ0k7RUFDQTtNQUFBO1VBQUE7QUFoMkdaO0FBbTJHUTtFQUNJO01BQUE7RUFDQTtBQWoyR1o7QUFvMkdRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQSxjckRqMEhXO0VxRGswSFg7QUFsMkdaO0FBbzJHWTtFQUNJO0VBQ0E7RUFDQTtFQUNBO1VBQUE7QUFsMkdoQjtBQXEyR1k7RUFDSTtFQUNBO0VBQ0E7QUFuMkdoQjtBQXEyR2dCO0VBQ0k7QUFuMkdwQjtBQXcyR1E7RWhFNzFISjtFQUNBO0VBQ0E7QWdFd2ZKO0FBdTJHUTtFaEVqMkhKO0VBQ0E7RUFDQTtFZ0VpMkhRO0VBQ0E7QUFuMkdaLEM7Ozs7QTVFcmdCQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QTJEOE5KOztBM0QzTkE7RUFDSTtBMkQ4Tko7O0F6RHBPSTtFQURKO0lBRVE7RXlEd09OO0FBQ0Y7O0F6RHJPQTtFQUNJO0VBQ0E7RUFDQTtBeUR3T0o7QXpEdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RXlEeU9OO0FBQ0Y7O0F6RHRPQTtFQUdZO0lBQ0k7SUFDQTtFeUR1T2Q7RXpEek9VO0lBQ0k7SUFDQTtFeUQyT2Q7RXpEN09VO0lBQ0k7SUFDQTtFeUQrT2Q7RXpEalBVO0lBQ0k7SUFDQTtFeURtUGQ7RXpEclBVO0lBQ0k7SUFDQTtFeUR1UGQ7RXpEelBVO0lBQ0k7SUFDQTtFeUQyUGQ7RXpEN1BVO0lBQ0k7SUFDQTtFeUQrUGQ7RXpEalFVO0lBQ0k7SUFDQTtFeURtUWQ7RXpEclFVO0lBQ0k7SUFDQTtFeUR1UWQ7RXpEelFVO0lBQ0k7SUFDQTtFeUQyUWQ7RXpEN1FVO0lBQ0k7SUFDQTtFeUQrUWQ7RXpEalJVO0lBQ0k7SUFDQTtFeURtUmQ7RXpEOVFFO0lBQ0k7RXlEZ1JOO0FBQ0Y7QXpEM1FRO0VBREo7SUFFUTtFeUQ4UVY7QUFDRjs7QXhEblRBOztFQUFBO0FDQUE7O0VBQUE7QXVENkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0M3RTcxRWdCO0U2RTgxRWhCLGN0RG41RVM7RXNEbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQVlJO0VBQ0k7RUFDQTtBQTcxR1I7QS9EdFdJO0UrRGlzSEE7SUFLUTtJQUFBO0lBQUE7SUFDQTtJQUFBO1FBQUE7WUFBQTtFQTUxR1Y7QUFDRjtBQTgxR1E7RUFUSjtJQVVRO0VBMzFHVjtBQUNGO0FBNjFHUTtFQUNJO0FBMzFHWjtBQTgxR1E7RUFDSTtBQTUxR1o7QUErMUdRO0VBQ0k7RUFDQTtBQTcxR1o7QS9EM1hJO0UrRDJ0SEk7SUFFUTtFQTkxR2Q7QUFDRjtBL0RoWUk7RStEMnRISTtJQU1RO0VBNzFHZDtBQUNGO0FBZzJHUTtFQUNJO01BQUE7VUFBQTtFQUNBO0FBOTFHWjtBQWcyR1k7RW5FcHdIUjtFQW9CQTtBbUVvWko7QUFpMkdZO0VBQ0k7QUEvMUdoQjtBL0RoWkk7RStEbXZISTtJQUVRO1FBQUE7WUFBQTtJQUNBO0lBQUE7SUFBQTtJQUNBO0lBQUE7UUFBQTtZQUFBO0lBQ0E7UUFBQTtZQUFBO0VBajJHZDtBQUNGO0FBbzJHUTtFQUNJO0VBQ0E7RUFDQTtFQUFBO0VBQUE7RUFDQTtFQUFBO01BQUE7VUFBQTtFQUNBO01BQUE7VUFBQTtFQUNBO01BQUE7VUFBQTtFQUNBO01BQUE7VUFBQTtBQWwyR1o7QS9EamFJO0UrRDR2SEk7SUFVUTtJQUNBO0lBQ0E7RUFqMkdkO0FBQ0Y7QUFvMkdRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtNQUFBO1VBQUE7QUFsMkdaLEM7Ozs7QTdFL2NBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBNEQ4Tko7O0E1RDNOQTtFQUNJO0E0RDhOSjs7QTFEcE9JO0VBREo7SUFFUTtFMER3T047QUFDRjs7QTFEck9BO0VBQ0k7RUFDQTtFQUNBO0EwRHdPSjtBMUR0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFMER5T047QUFDRjs7QTFEdE9BO0VBR1k7SUFDSTtJQUNBO0UwRHVPZDtFMUR6T1U7SUFDSTtJQUNBO0UwRDJPZDtFMUQ3T1U7SUFDSTtJQUNBO0UwRCtPZDtFMURqUFU7SUFDSTtJQUNBO0UwRG1QZDtFMURyUFU7SUFDSTtJQUNBO0UwRHVQZDtFMUR6UFU7SUFDSTtJQUNBO0UwRDJQZDtFMUQ3UFU7SUFDSTtJQUNBO0UwRCtQZDtFMURqUVU7SUFDSTtJQUNBO0UwRG1RZDtFMURyUVU7SUFDSTtJQUNBO0UwRHVRZDtFMUR6UVU7SUFDSTtJQUNBO0UwRDJRZDtFMUQ3UVU7SUFDSTtJQUNBO0UwRCtRZDtFMURqUlU7SUFDSTtJQUNBO0UwRG1SZDtFMUQ5UUU7SUFDSTtFMERnUk47QUFDRjtBMUQzUVE7RUFESjtJQUVRO0UwRDhRVjtBQUNGOztBekRuVEE7O0VBQUE7QUNBQTs7RUFBQTtBd0Q2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3QzlFNzFFZ0I7RThFODFFaEIsY3ZEbjVFUztFdURvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBcmhEUTtFQUNJO0VBQ0E7QUE1ekRaLEM7Ozs7QTlFdFlBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBNkQ4Tko7O0E3RDNOQTtFQUNJO0E2RDhOSjs7QTNEcE9JO0VBREo7SUFFUTtFMkR3T047QUFDRjs7QTNEck9BO0VBQ0k7RUFDQTtFQUNBO0EyRHdPSjtBM0R0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFMkR5T047QUFDRjs7QTNEdE9BO0VBR1k7SUFDSTtJQUNBO0UyRHVPZDtFM0R6T1U7SUFDSTtJQUNBO0UyRDJPZDtFM0Q3T1U7SUFDSTtJQUNBO0UyRCtPZDtFM0RqUFU7SUFDSTtJQUNBO0UyRG1QZDtFM0RyUFU7SUFDSTtJQUNBO0UyRHVQZDtFM0R6UFU7SUFDSTtJQUNBO0UyRDJQZDtFM0Q3UFU7SUFDSTtJQUNBO0UyRCtQZDtFM0RqUVU7SUFDSTtJQUNBO0UyRG1RZDtFM0RyUVU7SUFDSTtJQUNBO0UyRHVRZDtFM0R6UVU7SUFDSTtJQUNBO0UyRDJRZDtFM0Q3UVU7SUFDSTtJQUNBO0UyRCtRZDtFM0RqUlU7SUFDSTtJQUNBO0UyRG1SZDtFM0Q5UUU7SUFDSTtFMkRnUk47QUFDRjtBM0QzUVE7RUFESjtJQUVRO0UyRDhRVjtBQUNGOztBMURuVEE7O0VBQUE7QUNBQTs7RUFBQTtBeUQ2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Qy9FNzFFZ0I7RStFODFFaEIsY3hEbjVFUztFd0RvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBM2dESTtFcEUxckVBLDJFQUZpQjtFQUVqQixtRUFGaUI7RW9FOHJFYjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFk1RW5xRWlCO0E0RTZWekI7QUF3MERRO0VBQ0k7VUFBQTtFQUNBO1VBQUE7RUFDQTtVQUFBO0VBQ0E7VUFBQTtBQXQwRFo7QUF5MERRO0VBQ0k7QUF2MERaO0FBMDBEUTtFQUNJLHNCeEQ1dEVVO0F3RG9adEI7QUEyMERRO0VyRS90RUo7QXFFdVpKO0FBNDBEUTtFQUNJO0FBMTBEWjtBQTYwRFE7RUFDSSxZNUVydUVxQjtBNEUwWmpDO0FBODBEUTtFQUNJO0FBNTBEWjtBQTgwRFk7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO1VBQUE7QUE1MERoQjtBQXF6R0k7RUFBSSxvQ3hEenJIZ0I7QXdEdVl4QixDOzs7O0EvRS9hQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QThEOE5KOztBOUQzTkE7RUFDSTtBOEQ4Tko7O0E1RHBPSTtFQURKO0lBRVE7RTREd09OO0FBQ0Y7O0E1RHJPQTtFQUNJO0VBQ0E7RUFDQTtBNER3T0o7QTVEdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RTREeU9OO0FBQ0Y7O0E1RHRPQTtFQUdZO0lBQ0k7SUFDQTtFNER1T2Q7RTVEek9VO0lBQ0k7SUFDQTtFNEQyT2Q7RTVEN09VO0lBQ0k7SUFDQTtFNEQrT2Q7RTVEalBVO0lBQ0k7SUFDQTtFNERtUGQ7RTVEclBVO0lBQ0k7SUFDQTtFNER1UGQ7RTVEelBVO0lBQ0k7SUFDQTtFNEQyUGQ7RTVEN1BVO0lBQ0k7SUFDQTtFNEQrUGQ7RTVEalFVO0lBQ0k7SUFDQTtFNERtUWQ7RTVEclFVO0lBQ0k7SUFDQTtFNER1UWQ7RTVEelFVO0lBQ0k7SUFDQTtFNEQyUWQ7RTVEN1FVO0lBQ0k7SUFDQTtFNEQrUWQ7RTVEalJVO0lBQ0k7SUFDQTtFNERtUmQ7RTVEOVFFO0lBQ0k7RTREZ1JOO0FBQ0Y7QTVEM1FRO0VBREo7SUFFUTtFNEQ4UVY7QUFDRjs7QTNEblRBOztFQUFBO0FDQUE7O0VBQUE7QTBENkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0NoRjcxRWdCO0VnRjgxRWhCLGN6RG41RVM7RXlEbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQXA5Q0k7RUFDSTtFQUFBO0VBQUE7RUFDQTtNQUFBO1VBQUE7RUFDQTtFQUNBO0VBQ0EsbUJoRjVxRW1CO0VnRjZxRW5CLGNoRnZ0RWdCO0FnRjBWeEI7QUErM0RRO0VBQ0ksY2hGOXFFUztFZ0YrcUVUO01BQUE7RUFDQTtBQTczRFosQzs7OztBaEYvWUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0ErRDhOSjs7QS9EM05BO0VBQ0k7QStEOE5KOztBN0RwT0k7RUFESjtJQUVRO0U2RHdPTjtBQUNGOztBN0RyT0E7RUFDSTtFQUNBO0VBQ0E7QTZEd09KO0E3RHRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0U2RHlPTjtBQUNGOztBN0R0T0E7RUFHWTtJQUNJO0lBQ0E7RTZEdU9kO0U3RHpPVTtJQUNJO0lBQ0E7RTZEMk9kO0U3RDdPVTtJQUNJO0lBQ0E7RTZEK09kO0U3RGpQVTtJQUNJO0lBQ0E7RTZEbVBkO0U3RHJQVTtJQUNJO0lBQ0E7RTZEdVBkO0U3RHpQVTtJQUNJO0lBQ0E7RTZEMlBkO0U3RDdQVTtJQUNJO0lBQ0E7RTZEK1BkO0U3RGpRVTtJQUNJO0lBQ0E7RTZEbVFkO0U3RHJRVTtJQUNJO0lBQ0E7RTZEdVFkO0U3RHpRVTtJQUNJO0lBQ0E7RTZEMlFkO0U3RDdRVTtJQUNJO0lBQ0E7RTZEK1FkO0U3RGpSVTtJQUNJO0lBQ0E7RTZEbVJkO0U3RDlRRTtJQUNJO0U2RGdSTjtBQUNGO0E3RDNRUTtFQURKO0lBRVE7RTZEOFFWO0FBQ0Y7O0E1RG5UQTs7RUFBQTtBQ0FBOztFQUFBO0EyRDZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDakY3MUVnQjtFaUY4MUVoQixjMURuNUVTO0UwRG81RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFZSTtFQUNJO0FBNzFHUjtBQSsxR1E7RUFDSTtFQUNBO0FBNzFHWjtBQWcyR1E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBLGtCekI5dUhZO0V5Qit1SFo7VUFBQTtBQTkxR1o7QUFnMkdZO0VBQ0k7QUE5MUdoQjtBQWsyR1E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0Esc0IxRHZ2SFU7RTBEd3ZIVjtFQUNBO0VBQ0E7RUFDQTtFQUNBO1VBQUE7RUFDQTtFQUNBO0VBQ0E7QUFoMkdaO0FBbTJHUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFqMkdaO0FBbzJHUTtFQUNJLGFyQnZ3SGU7QXFCcWEzQixDOzs7O0FqRjlhQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QWdFOE5KOztBaEUzTkE7RUFDSTtBZ0U4Tko7O0E5RHBPSTtFQURKO0lBRVE7RThEd09OO0FBQ0Y7O0E5RHJPQTtFQUNJO0VBQ0E7RUFDQTtBOER3T0o7QTlEdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RThEeU9OO0FBQ0Y7O0E5RHRPQTtFQUdZO0lBQ0k7SUFDQTtFOER1T2Q7RTlEek9VO0lBQ0k7SUFDQTtFOEQyT2Q7RTlEN09VO0lBQ0k7SUFDQTtFOEQrT2Q7RTlEalBVO0lBQ0k7SUFDQTtFOERtUGQ7RTlEclBVO0lBQ0k7SUFDQTtFOER1UGQ7RTlEelBVO0lBQ0k7SUFDQTtFOEQyUGQ7RTlEN1BVO0lBQ0k7SUFDQTtFOEQrUGQ7RTlEalFVO0lBQ0k7SUFDQTtFOERtUWQ7RTlEclFVO0lBQ0k7SUFDQTtFOER1UWQ7RTlEelFVO0lBQ0k7SUFDQTtFOEQyUWQ7RTlEN1FVO0lBQ0k7SUFDQTtFOEQrUWQ7RTlEalJVO0lBQ0k7SUFDQTtFOERtUmQ7RTlEOVFFO0lBQ0k7RThEZ1JOO0FBQ0Y7QTlEM1FRO0VBREo7SUFFUTtFOEQ4UVY7QUFDRjs7QTdEblRBOztFQUFBO0FDQUE7O0VBQUE7QTRENkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0NsRjcxRWdCO0VrRjgxRWhCLGMzRG41RVM7RTJEbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQVlJO0VBQ0k7RUFDQTtBQTcxR1I7QUErMUdRO0VBRUk7RUFDQTtFQUNBO0VBQ0E7QUE5MUdaO0FwRTVXSTtFb0Vxc0hJO0lBUVE7RUE3MUdkO0FBQ0Y7QXBFalhJO0VvRXFzSEk7SUFZUTtFQTUxR2Q7QUFDRjtBQTgxR1k7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBNTFHaEI7QXBFaFlJO0VvRW90SFE7SUFXUTtJQUNBO0VBMzFHbEI7QUFDRjtBcEV0WUk7RW9Fb3RIUTtJQWdCUTtFQTExR2xCO0FBQ0Y7QUE2MUdZO0VBQ0k7QUEzMUdoQjtBcEU5WUk7RW9Fd3VIUTtJQUlRO0VBMTFHbEI7QUFDRjtBQTgxR1E7RUFDSSxjM0RseEhTO0EyRHNickI7QUE4MUdZO0VBQ0ksbUIzRHJ4SEs7QTJEeWJyQjtBQSsxR1k7RUFDSTtBQTcxR2hCO0FwRTVaSTtFb0V3dkhRO0lBSVE7RUE1MUdsQjtBQUNGO0FBKzFHWTtFQUNJO0FBNzFHaEI7QUFrMkdZO0VBQ0k7QUFoMkdoQjtBQW0yR1k7RUFDSSxjM0RoeUhPO0EyRCtidkI7QUFxMkdRO0VBQ0k7RUFDQTtFQUNBLGMzRHh5SFc7QTJEcWN2QjtBQXMyR1E7RUFDSTtFQUNBO0VBQ0EsYzNEN3lIVztFMkQ4eUhYO0FBcDJHWjtBQXUyR1E7RXZFNXlISiwyQ0FGaUI7RUFFakIsbUNBRmlCO0V1RWl6SFQsYzNEcnpIVztBMkQrY3ZCO0FBdzJHWTtFQUVJLGMzRHh6SE87QTJEaWR2QjtBQTIyR1E7RUFDSTtFQUNBO0VBQ0E7RUFDQSx5QjNEMzBIUztFMkQ0MEhULFczRHYwSFU7RTJEdzBIVjtFQUNBO0FBejJHWjtBcEVyY0k7RW9FdXlISTtJQVVRO0lBQ0E7SUFDQTtJQUNBO0VBeDJHZDtBQUNGO0FwRTdjSTtFb0V1eUhJO0lBaUJRO0VBdjJHZDtBQUNGO0FBMDJHUTtFQUNJO0VBQ0E7QUF4MkdaO0FwRXRkSTtFb0U0ekhJO0lBS1E7SUFDQTtFQXYyR2Q7QUFDRjtBQTAyR1E7RUFDSTtFQUFBO0VBQUE7RUFDQTtFQUFBO01BQUE7VUFBQTtFQUNBO01BQUE7VUFBQTtBQXgyR1o7QXBFamVJO0VvRXMwSEk7SUFNUTtJQUFBO1FBQUE7WUFBQTtFQXYyR2Q7QUFDRixDOzs7O0FsRnRnQkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0FpRThOSjs7QWpFM05BO0VBQ0k7QWlFOE5KOztBL0RwT0k7RUFESjtJQUVRO0UrRHdPTjtBQUNGOztBL0RyT0E7RUFDSTtFQUNBO0VBQ0E7QStEd09KO0EvRHRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0UrRHlPTjtBQUNGOztBL0R0T0E7RUFHWTtJQUNJO0lBQ0E7RStEdU9kO0UvRHpPVTtJQUNJO0lBQ0E7RStEMk9kO0UvRDdPVTtJQUNJO0lBQ0E7RStEK09kO0UvRGpQVTtJQUNJO0lBQ0E7RStEbVBkO0UvRHJQVTtJQUNJO0lBQ0E7RStEdVBkO0UvRHpQVTtJQUNJO0lBQ0E7RStEMlBkO0UvRDdQVTtJQUNJO0lBQ0E7RStEK1BkO0UvRGpRVTtJQUNJO0lBQ0E7RStEbVFkO0UvRHJRVTtJQUNJO0lBQ0E7RStEdVFkO0UvRHpRVTtJQUNJO0lBQ0E7RStEMlFkO0UvRDdRVTtJQUNJO0lBQ0E7RStEK1FkO0UvRGpSVTtJQUNJO0lBQ0E7RStEbVJkO0UvRDlRRTtJQUNJO0UrRGdSTjtBQUNGO0EvRDNRUTtFQURKO0lBRVE7RStEOFFWO0FBQ0Y7O0E5RG5UQTs7RUFBQTtBQ0FBOztFQUFBO0E2RDZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDbkY3MUVnQjtFbUY4MUVoQixjNURuNUVTO0U0RG81RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUE3NENJO0VBQ0k7QUFwOERSO0FBczhEUTtFQUNJO0VBQ0E7QUFwOERaO0FBdThEUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFyOERaO0FBdzhEUTtFQUNJO0FBdDhEWixDOzs7O0FuRm5aQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QWtFOE5KOztBbEUzTkE7RUFDSTtBa0U4Tko7O0FoRXBPSTtFQURKO0lBRVE7RWdFd09OO0FBQ0Y7O0FoRXJPQTtFQUNJO0VBQ0E7RUFDQTtBZ0V3T0o7QWhFdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RWdFeU9OO0FBQ0Y7O0FoRXRPQTtFQUdZO0lBQ0k7SUFDQTtFZ0V1T2Q7RWhFek9VO0lBQ0k7SUFDQTtFZ0UyT2Q7RWhFN09VO0lBQ0k7SUFDQTtFZ0UrT2Q7RWhFalBVO0lBQ0k7SUFDQTtFZ0VtUGQ7RWhFclBVO0lBQ0k7SUFDQTtFZ0V1UGQ7RWhFelBVO0lBQ0k7SUFDQTtFZ0UyUGQ7RWhFN1BVO0lBQ0k7SUFDQTtFZ0UrUGQ7RWhFalFVO0lBQ0k7SUFDQTtFZ0VtUWQ7RWhFclFVO0lBQ0k7SUFDQTtFZ0V1UWQ7RWhFelFVO0lBQ0k7SUFDQTtFZ0UyUWQ7RWhFN1FVO0lBQ0k7SUFDQTtFZ0UrUWQ7RWhFalJVO0lBQ0k7SUFDQTtFZ0VtUmQ7RWhFOVFFO0lBQ0k7RWdFZ1JOO0FBQ0Y7QWhFM1FRO0VBREo7SUFFUTtFZ0U4UVY7QUFDRjs7QS9EblRBOztFQUFBO0FDQUE7O0VBQUE7QThENkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0NwRjcxRWdCO0VvRjgxRWhCLGM3RG41RVM7RTZEbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQWwzQ0k7RUFDSTtBQS85RFI7QUFpK0RRO0UxRWoyRUo7RTBFbTJFUTtFQUNBLGlCQVR5QjtFQVV6QixjQVZ5QjtFQVd6QixtQjdEMTJFUTtFNkQyMkVSO0VBQ0EsVzdEeDJFVTtFNkR5MkVWO0VBQ0EsbUJBZnlCO0VBZ0J6QjtBQS85RFo7QUFpK0RZO0VBQ0k7QUEvOURoQixDOzs7O0FwRnBaQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QW1FOE5KOztBbkUzTkE7RUFDSTtBbUU4Tko7O0FqRXBPSTtFQURKO0lBRVE7RWlFd09OO0FBQ0Y7O0FqRXJPQTtFQUNJO0VBQ0E7RUFDQTtBaUV3T0o7QWpFdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RWlFeU9OO0FBQ0Y7O0FqRXRPQTtFQUdZO0lBQ0k7SUFDQTtFaUV1T2Q7RWpFek9VO0lBQ0k7SUFDQTtFaUUyT2Q7RWpFN09VO0lBQ0k7SUFDQTtFaUUrT2Q7RWpFalBVO0lBQ0k7SUFDQTtFaUVtUGQ7RWpFclBVO0lBQ0k7SUFDQTtFaUV1UGQ7RWpFelBVO0lBQ0k7SUFDQTtFaUUyUGQ7RWpFN1BVO0lBQ0k7SUFDQTtFaUUrUGQ7RWpFalFVO0lBQ0k7SUFDQTtFaUVtUWQ7RWpFclFVO0lBQ0k7SUFDQTtFaUV1UWQ7RWpFelFVO0lBQ0k7SUFDQTtFaUUyUWQ7RWpFN1FVO0lBQ0k7SUFDQTtFaUUrUWQ7RWpFalJVO0lBQ0k7SUFDQTtFaUVtUmQ7RWpFOVFFO0lBQ0k7RWlFZ1JOO0FBQ0Y7QWpFM1FRO0VBREo7SUFFUTtFaUU4UVY7QUFDRjs7QWhFblRBOztFQUFBO0FDQUE7O0VBQUE7QStENkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0NyRjcxRWdCO0VxRjgxRWhCLGM5RG41RVM7RThEbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQWVRO0VBQ0k7RUFBQTtFQUFBO0VBQ0E7TUFBQTtVQUFBO0VBQ0E7TUFBQTtVQUFBO0VBQ0E7RUFDQTtBQWgyR1o7QXZFeldJO0V1RW9zSEk7SUFRUTtRQUFBO1lBQUE7SUFDQTtFQS8xR2Q7QUFDRjtBQWsyR1E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBQWgyR1o7QXZFclhJO0V1RWl0SEk7SUFPUTtJQUNBO0VBLzFHZDtBQUNGO0FBazJHUTtFQUNJO0VBQUE7RUFBQTtFQUNBO01BQUE7VUFBQTtFQUNBO01BQUE7VUFBQTtFQUNBLFdBakMrQjtFQWtDL0IsWUFsQytCO0VBbUMvQix5QjlEbndIUztFOERvd0hULFc5RC92SFU7RThEZ3dIVjtFQUNBO0VBQ0E7RUFDQTtBQWgyR1o7QXZFeFlJO0V1RTZ0SEk7SUFjUTtFQS8xR2Q7QUFDRixDOzs7O0FyRjdhQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QW9FOE5KOztBcEUzTkE7RUFDSTtBb0U4Tko7O0FsRXBPSTtFQURKO0lBRVE7RWtFd09OO0FBQ0Y7O0FsRXJPQTtFQUNJO0VBQ0E7RUFDQTtBa0V3T0o7QWxFdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RWtFeU9OO0FBQ0Y7O0FsRXRPQTtFQUdZO0lBQ0k7SUFDQTtFa0V1T2Q7RWxFek9VO0lBQ0k7SUFDQTtFa0UyT2Q7RWxFN09VO0lBQ0k7SUFDQTtFa0UrT2Q7RWxFalBVO0lBQ0k7SUFDQTtFa0VtUGQ7RWxFclBVO0lBQ0k7SUFDQTtFa0V1UGQ7RWxFelBVO0lBQ0k7SUFDQTtFa0UyUGQ7RWxFN1BVO0lBQ0k7SUFDQTtFa0UrUGQ7RWxFalFVO0lBQ0k7SUFDQTtFa0VtUWQ7RWxFclFVO0lBQ0k7SUFDQTtFa0V1UWQ7RWxFelFVO0lBQ0k7SUFDQTtFa0UyUWQ7RWxFN1FVO0lBQ0k7SUFDQTtFa0UrUWQ7RWxFalJVO0lBQ0k7SUFDQTtFa0VtUmQ7RWxFOVFFO0lBQ0k7RWtFZ1JOO0FBQ0Y7QWxFM1FRO0VBREo7SUFFUTtFa0U4UVY7QUFDRjs7QWpFblRBOztFQUFBO0FDQUE7O0VBQUE7QWdFNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0N0RjcxRWdCO0VzRjgxRWhCLGMvRG41RVM7RStEbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQXAwQ1E7RUFDSSx3Q3RGNzFFZ0I7RXNGODFFaEIsYy9EbjVFUztFK0RvNUVUO0FBN2dFWjtBQStnRVk7RUFDSTtBQTdnRWhCO0FBZ2hFWTtFQUNJO0FBOWdFaEI7QUFraEVnQjtFQUNJO0FBaGhFcEI7QUFxaEVRO0VBQ0k7QUFuaEVaLEM7Ozs7QXRGblpBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBcUU4Tko7O0FyRTNOQTtFQUNJO0FxRThOSjs7QW5FcE9JO0VBREo7SUFFUTtFbUV3T047QUFDRjs7QW5Fck9BO0VBQ0k7RUFDQTtFQUNBO0FtRXdPSjtBbkV0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFbUV5T047QUFDRjs7QW5FdE9BO0VBR1k7SUFDSTtJQUNBO0VtRXVPZDtFbkV6T1U7SUFDSTtJQUNBO0VtRTJPZDtFbkU3T1U7SUFDSTtJQUNBO0VtRStPZDtFbkVqUFU7SUFDSTtJQUNBO0VtRW1QZDtFbkVyUFU7SUFDSTtJQUNBO0VtRXVQZDtFbkV6UFU7SUFDSTtJQUNBO0VtRTJQZDtFbkU3UFU7SUFDSTtJQUNBO0VtRStQZDtFbkVqUVU7SUFDSTtJQUNBO0VtRW1RZDtFbkVyUVU7SUFDSTtJQUNBO0VtRXVRZDtFbkV6UVU7SUFDSTtJQUNBO0VtRTJRZDtFbkU3UVU7SUFDSTtJQUNBO0VtRStRZDtFbkVqUlU7SUFDSTtJQUNBO0VtRW1SZDtFbkU5UUU7SUFDSTtFbUVnUk47QUFDRjtBbkUzUVE7RUFESjtJQUVRO0VtRThRVjtBQUNGOztBbEVuVEE7O0VBQUE7QUNBQTs7RUFBQTtBaUU2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Q3ZGNzFFZ0I7RXVGODFFaEIsY2hFbjVFUztFZ0VvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBcnlDSTtFQUNJO0VBQUE7RUFBQTtFQUNBO0VBQ0E7QUE1aUVSO0FBOGlFUTtFQUNJO0VBQ0E7QUE1aUVaO0FBK2lFUTtFQUNJO0FBN2lFWixDOzs7O0F2RjlZQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QXNFOE5KOztBdEUzTkE7RUFDSTtBc0U4Tko7O0FwRXBPSTtFQURKO0lBRVE7RW9Fd09OO0FBQ0Y7O0FwRXJPQTtFQUNJO0VBQ0E7RUFDQTtBb0V3T0o7QXBFdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RW9FeU9OO0FBQ0Y7O0FwRXRPQTtFQUdZO0lBQ0k7SUFDQTtFb0V1T2Q7RXBFek9VO0lBQ0k7SUFDQTtFb0UyT2Q7RXBFN09VO0lBQ0k7SUFDQTtFb0UrT2Q7RXBFalBVO0lBQ0k7SUFDQTtFb0VtUGQ7RXBFclBVO0lBQ0k7SUFDQTtFb0V1UGQ7RXBFelBVO0lBQ0k7SUFDQTtFb0UyUGQ7RXBFN1BVO0lBQ0k7SUFDQTtFb0UrUGQ7RXBFalFVO0lBQ0k7SUFDQTtFb0VtUWQ7RXBFclFVO0lBQ0k7SUFDQTtFb0V1UWQ7RXBFelFVO0lBQ0k7SUFDQTtFb0UyUWQ7RXBFN1FVO0lBQ0k7SUFDQTtFb0UrUWQ7RXBFalJVO0lBQ0k7SUFDQTtFb0VtUmQ7RXBFOVFFO0lBQ0k7RW9FZ1JOO0FBQ0Y7QXBFM1FRO0VBREo7SUFFUTtFb0U4UVY7QUFDRjs7QW5FblRBOztFQUFBO0FDQUE7O0VBQUE7QWtFNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0N4RjcxRWdCO0V3RjgxRWhCLGNqRW41RVM7RWlFbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQVlJO0U1RWx0SEE7RUFDQTtFQUNBO0VEREEseUdBRmlCO0VBRWpCLGlHQUZpQjtFNkVzdEhiO0VBQ0E7RUFDQTtFQUNBLDhCdEN2dUhjO0VzQ3d1SGQ7QUEzMUdSO0FBNjFHUTtFQUNJO0VBQUE7RUFBQTtFQUNBO01BQUE7VUFBQTtFQUNBO0FBMzFHWjtBQTYxR1k7RUFDSTtBQTMxR2hCO0FBKzFHUTtFQUNJO0FBNzFHWjtBQWcyR1E7RUFDSSxXakVwdkhVO0VpRXF2SFY7TUFBQTtFQUNBO0FBOTFHWjtBQWkyR1E7RUFDSTtFQUNBLFdqRTN2SFU7QWlFNFp0QjtBQWsyR1E7RTVFL3ZISjtFQUNBO0VBQ0E7RTRFK3ZIUTtBQTkxR1o7QUFpMkdRO0VBQ0ksV2pFdHdIVTtBaUV1YXRCO0FBMjJHSTtFQUNJLHlCakV4dEhnQjtBaUUrV3hCO0FBdzJHSTtFQUNJLHlCakV4dEhnQjtBaUVrWHhCO0FBcTJHSTtFQUNJLHlCakV4dEhnQjtBaUVxWHhCLEM7Ozs7QXhGbmJBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBdUU4Tko7O0F2RTNOQTtFQUNJO0F1RThOSjs7QXJFcE9JO0VBREo7SUFFUTtFcUV3T047QUFDRjs7QXJFck9BO0VBQ0k7RUFDQTtFQUNBO0FxRXdPSjtBckV0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFcUV5T047QUFDRjs7QXJFdE9BO0VBR1k7SUFDSTtJQUNBO0VxRXVPZDtFckV6T1U7SUFDSTtJQUNBO0VxRTJPZDtFckU3T1U7SUFDSTtJQUNBO0VxRStPZDtFckVqUFU7SUFDSTtJQUNBO0VxRW1QZDtFckVyUFU7SUFDSTtJQUNBO0VxRXVQZDtFckV6UFU7SUFDSTtJQUNBO0VxRTJQZDtFckU3UFU7SUFDSTtJQUNBO0VxRStQZDtFckVqUVU7SUFDSTtJQUNBO0VxRW1RZDtFckVyUVU7SUFDSTtJQUNBO0VxRXVRZDtFckV6UVU7SUFDSTtJQUNBO0VxRTJRZDtFckU3UVU7SUFDSTtJQUNBO0VxRStRZDtFckVqUlU7SUFDSTtJQUNBO0VxRW1SZDtFckU5UUU7SUFDSTtFcUVnUk47QUFDRjtBckUzUVE7RUFESjtJQUVRO0VxRThRVjtBQUNGOztBcEVuVEE7O0VBQUE7QUNBQTs7RUFBQTtBbUU2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Q3pGNzFFZ0I7RXlGODFFaEIsY2xFbjVFUztFa0VvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBdnVDUTtFQUNJLG9CQUxnQjtFQU1oQixxQkFOZ0I7QUFwbUU1QjtBQTZtRVE7RUFDSTtFQUNBO0FBM21FWjtBQThtRVE7RUFDSSxlQWZnQjtBQTdsRTVCO0FBK21FUTtFQUNJO0FBN21FWjtBQWduRVE7RUFDSSxrQkF2QmdCO0VBd0JoQixtQkF4QmdCO0FBdGxFNUI7QUFpbkVRO0VBQ0k7RUFBQTtFQUFBO0VBQ0E7RUFBQTtNQUFBO1VBQUE7RUFDQTtNQUFBO1VBQUE7QUEvbUVaO0FBa25FUTtFQUNJO0VBQ0E7TUFBQTtVQUFBO0VBQ0E7TUFBQTtBQWhuRVo7QUFtbkVRO0VBQ0k7TUFBQTtVQUFBO0VBQ0E7TUFBQTtBQWpuRVo7QUFvbkVRO0VBQ0k7RUFDQTtBQWxuRVo7QUFxbkVRO0VBQ0k7QUFubkVaOztBQTR6R1k7RUFDSTtBQXp6R2hCO0FBNHpHWTtFQUNJO0VBQ0E7QUExekdoQjtBQTh6R1E7RUFDSTtFQUFBO0VBQUE7RUFDQTtFQUFBO01BQUE7VUFBQTtFQUNBO01BQUE7VUFBQTtFQUNBO0FBNXpHWjtBM0V2Wkk7RTJFK3NISTtJQU9RO0lBQ0E7UUFBQTtFQTN6R2Q7QUFDRjtBQTh6R1E7RUFDSTtNQUFBO1VBQUE7RUFDQTtFQUNBO0FBNXpHWjtBM0VsYUk7RTJFMnRISTtJQU1RO0lBQ0E7RUEzekdkO0FBQ0Y7QTNFeGFJO0UyRXF1SFE7SUFFUTtJQUNBO0VBM3pHbEI7QUFDRjtBM0U5YUk7RTJFcXVIUTtJQU9RO0VBMXpHbEI7QUFDRjtBQTZ6R1k7RUFDSTtNQUFBO1VBQUE7QUEzekdoQjtBQTh6R1k7RUFDSTtNQUFBO1VBQUE7QUE1ekdoQjtBM0V6Ykk7RTJFb3ZIUTtJQUlRO1FBQUE7WUFBQTtFQTN6R2xCO0FBQ0Y7QUE4ekdZO0VBQ0k7TUFBQTtVQUFBO0FBNXpHaEI7QTNFamNJO0UyRTR2SFE7SUFJUTtRQUFBO1lBQUE7RUEzekdsQjtBQUNGO0FBOHpHWTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0FBNXpHaEI7QTNFNWNJO0UyRW93SFE7SUFPUTtJQUNBO0lBQ0E7RUEzekdsQjtBQUNGO0FBK3pHUTtFQUNJLGNsRXh5SFc7RWtFeXlIWDtBQTd6R1o7QUFpMEdZO0VBQ0k7QUEvekdoQjtBM0UxZEk7RTJFd3hIUTtJQUlRO0VBOXpHbEI7QUFDRjtBM0UvZEk7RTJFd3hIUTtJQVFRO0VBN3pHbEI7QUFDRjtBQWkwR1E7RUFDSTtBQS96R1o7QTNFdmVJO0UyRXF5SEk7SUFJUTtFQTl6R2Q7QUFDRjtBQWcwR1k7RUFDSTtBQTl6R2hCO0FBaTBHWTs7O0VBR0k7QUEvekdoQjtBQWswR1k7RUFDSTtBQWgwR2hCO0FBbTBHWTtFQUNJO0VBQ0E7RUFDQTtBQWowR2hCO0FBbzBHWTtFQUNJO0FBbDBHaEI7QUFxMEdZO0VBQ0k7RUFDQTtFQUNBO0VBQ0Esd0N6Rm56SFk7RXlGb3pIWjtFQUNBO0VBQ0E7RUFDQSxjbEVqMkhPO0VrRWsySFA7QUFuMEdoQjtBQXEwR2dCO0VBQ0ksY2xFcjJIRztBa0VraUJ2QjtBQWswR2dCO0VBQ0ksY2xFcjJIRztBa0VraUJ2QjtBQWswR2dCO0VBQ0ksY2xFcjJIRztBa0VraUJ2QjtBQWswR2dCO0VBQ0ksY2xFcjJIRztBa0VraUJ2QjtBQWswR2dCO0VBQ0ksY2xFcjJIRztBa0VraUJ2QjtBM0U3Z0JJO0UyRW8wSFE7SUFnQlE7SUFDQTtJQUNBO0lBQ0E7RUFuMEdsQjtBQUNGO0FBczBHWTtFQUNJLGNsRWozSE87RWtFazNIUDtFQUNBO0VBQ0E7QUFwMEdoQjtBQXMwR2dCO0VBRUksY2xFejNIRztBa0VvakJ2QjtBM0U5aEJJO0UyRTIxSFE7SUFZUTtJQUNBO0lBQ0E7RUFyMEdsQjtBQUNGO0FBdzBHWTtFQUNJO0VBQ0E7QUF0MEdoQjtBM0V6aUJJO0UyRTYySFE7SUFLUTtJQUNBO0VBcjBHbEI7QUFDRjtBQTAwR1k7OztFQUdJO0FBeDBHaEI7QUE2MEdZO0VBQ0k7QUEzMEdoQjtBQTgwR1k7RUFDSTtBQTUwR2hCO0FBKzBHWTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsY2xFcDZITztFa0VxNkhQLGtCakMvNkhRO0VpQ2c3SFI7RUFDQTtVQUFBO0FBNzBHaEI7QTNFcGtCSTtFMkV5NEhRO0lBV1E7SUFDQTtFQTUwR2xCO0FBQ0Y7QUFpMUdZO0VBQ0k7RUFDQTtBQS8wR2hCO0EzRTlrQkk7RTJFMjVIUTtJQUtRO0lBQ0E7RUE5MEdsQjtBQUNGO0EzRXBsQkk7RTJFczZISTtJQUVRO0VBaDFHZDtBQUNGO0FBazFHWTtFQUNJO0FBaDFHaEI7QUFtMUdZOzs7RUFHSTtBQWoxR2hCO0FBbzFHWTtFQUNJO0FBbDFHaEI7QUFxMUdZO0VBQ0k7RUFDQTtFQUNBO0FBbjFHaEI7QUFzMUdZO0VBQ0k7RUFDQTtBQXAxR2hCO0FBdTFHWTtFQUNJO0FBcjFHaEI7QUF5MUdRO0VBQ0k7QUF2MUdaO0FBMDFHUTtFQUNJO0FBeDFHWixDOzs7O0F6RnRwQkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0F3RThOSjs7QXhFM05BO0VBQ0k7QXdFOE5KOztBdEVwT0k7RUFESjtJQUVRO0VzRXdPTjtBQUNGOztBdEVyT0E7RUFDSTtFQUNBO0VBQ0E7QXNFd09KO0F0RXRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0VzRXlPTjtBQUNGOztBdEV0T0E7RUFHWTtJQUNJO0lBQ0E7RXNFdU9kO0V0RXpPVTtJQUNJO0lBQ0E7RXNFMk9kO0V0RTdPVTtJQUNJO0lBQ0E7RXNFK09kO0V0RWpQVTtJQUNJO0lBQ0E7RXNFbVBkO0V0RXJQVTtJQUNJO0lBQ0E7RXNFdVBkO0V0RXpQVTtJQUNJO0lBQ0E7RXNFMlBkO0V0RTdQVTtJQUNJO0lBQ0E7RXNFK1BkO0V0RWpRVTtJQUNJO0lBQ0E7RXNFbVFkO0V0RXJRVTtJQUNJO0lBQ0E7RXNFdVFkO0V0RXpRVTtJQUNJO0lBQ0E7RXNFMlFkO0V0RTdRVTtJQUNJO0lBQ0E7RXNFK1FkO0V0RWpSVTtJQUNJO0lBQ0E7RXNFbVJkO0V0RTlRRTtJQUNJO0VzRWdSTjtBQUNGO0F0RTNRUTtFQURKO0lBRVE7RXNFOFFWO0FBQ0Y7O0FyRW5UQTs7RUFBQTtBQ0FBOztFQUFBO0FvRTZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDMUY3MUVnQjtFMEY4MUVoQixjbkVuNUVTO0VtRW81RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFubEVJO0UvRWxuREEsa0RBRmlCO0VBRWpCLDBDQUZpQjtFK0VzbkRiO0VBQ0E7RUFDQTtBQTl2Q1I7QUFnd0NRO0VBQ0kscUJuRS9uRFc7QW1FaVl2QjtBQWl3Q1E7RUFDSSxjbkVub0RXO0FtRW9ZdkI7QUE4dkNRO0VBQ0ksY25Fbm9EVztBbUVvWXZCO0FBOHZDUTtFQUNJLGNuRW5vRFc7QW1Fb1l2QjtBQTh2Q1E7RUFDSSxjbkVub0RXO0FtRW9ZdkI7QUE4dkNRO0VBQ0ksY25Fbm9EVztBbUVvWXZCO0FBa3dDUTtFQUNJO0VBQ0E7QUFod0NaO0FBbXdDUTtFQUNJLHdDMUZqbURnQjtFMEZrbURoQjtBQWp3Q1o7QUFvd0NRO0VBQ0k7QUFsd0NaO0FBcXdDUTtFQUVJLHlCMUZwb0RhO0UwRnFvRGI7QUFwd0NaLEM7Ozs7QTFGN1pBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBeUU4Tko7O0F6RTNOQTtFQUNJO0F5RThOSjs7QXZFcE9JO0VBREo7SUFFUTtFdUV3T047QUFDRjs7QXZFck9BO0VBQ0k7RUFDQTtFQUNBO0F1RXdPSjtBdkV0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFdUV5T047QUFDRjs7QXZFdE9BO0VBR1k7SUFDSTtJQUNBO0V1RXVPZDtFdkV6T1U7SUFDSTtJQUNBO0V1RTJPZDtFdkU3T1U7SUFDSTtJQUNBO0V1RStPZDtFdkVqUFU7SUFDSTtJQUNBO0V1RW1QZDtFdkVyUFU7SUFDSTtJQUNBO0V1RXVQZDtFdkV6UFU7SUFDSTtJQUNBO0V1RTJQZDtFdkU3UFU7SUFDSTtJQUNBO0V1RStQZDtFdkVqUVU7SUFDSTtJQUNBO0V1RW1RZDtFdkVyUVU7SUFDSTtJQUNBO0V1RXVRZDtFdkV6UVU7SUFDSTtJQUNBO0V1RTJRZDtFdkU3UVU7SUFDSTtJQUNBO0V1RStRZDtFdkVqUlU7SUFDSTtJQUNBO0V1RW1SZDtFdkU5UUU7SUFDSTtFdUVnUk47QUFDRjtBdkUzUVE7RUFESjtJQUVRO0V1RThRVjtBQUNGOztBdEVuVEE7O0VBQUE7QUNBQTs7RUFBQTtBcUU2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3QzNGNzFFZ0I7RTJGODFFaEIsY3BFbjVFUztFb0VvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBaGdCUTtFQUNJO0VBQ0Esb0JBTndCO0VBT3hCLHFCQVB3QjtBQTEwRnBDO0FBbzFGUTtFQUNJO0VBQ0E7RUFDQTtFQUNBLFUvQi90R1M7QStCNllyQjtBQXExRlE7RWhGbHRHSix1REFGaUI7RUFFakIsK0NBRmlCO0VBRWpCLHVDQUZpQjtFQUVqQiw0RUFGaUI7RWdGc3RHVDtNQUFBO0FBbjFGWjtBQXMxRlE7RUFDSTtFQUNBO0FBcDFGWjtBQXUxRlE7RUFDSTtFQUNBO0FBcjFGWjtBQXUxRlk7RWhGaHVHUixzREFGaUI7RUFFakIsOENBRmlCO0VnRm91R0w7RUFDQTtFQUNBO0VBQ0E7RUFDQSx5QjNGcHVHTTtFMkZxdUdOO0FBcjFGaEI7QUEwMUZnQjtFQUNJLHlCcEU3dkdDO0FvRXFhckI7QUE2MUZRO0VBQ0k7RUFBQTtFQUFBO0VBQ0E7TUFBQTtVQUFBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQTMxRlo7QUE2MUZZO0VBQ0k7QUEzMUZoQjtBQTgxRlk7RUFDSTtBQTUxRmhCO0FBZzJGUTtFaEZwd0dKLDJDQUZpQjtFQUVqQixtQ0FGaUI7RWdGd3dHVCxjM0Zwd0dVO0UyRnF3R1Y7QUE5MUZaO0FBZzJGWTtFQUNJLGNwRTF4R0s7QW9FNGJyQjtBQWsyRlE7RUFDSTtFQUNBO0FBaDJGWjtBQW0yRlE7RUFDSTtBQWoyRlo7QUFvMkZRO0VBQ0k7RUFDQTtBQWwyRlo7QTdFdmFJO0U2RTZ3R1E7SS9FOXhHUjtJQUNBO0lBQ0E7SUREQSwyRUFGaUI7SUFFakIsbUVBRmlCO0VnRmdjbkI7RUFvMkZVO0kvRTl5R1I7SUFDQTtJQUNBO0krRTh5R1k7RUFoMkZkO0FBQ0YsQzs7OztBM0ZyZEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0EwRThOSjs7QTFFM05BO0VBQ0k7QTBFOE5KOztBeEVwT0k7RUFESjtJQUVRO0V3RXdPTjtBQUNGOztBeEVyT0E7RUFDSTtFQUNBO0VBQ0E7QXdFd09KO0F4RXRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0V3RXlPTjtBQUNGOztBeEV0T0E7RUFHWTtJQUNJO0lBQ0E7RXdFdU9kO0V4RXpPVTtJQUNJO0lBQ0E7RXdFMk9kO0V4RTdPVTtJQUNJO0lBQ0E7RXdFK09kO0V4RWpQVTtJQUNJO0lBQ0E7RXdFbVBkO0V4RXJQVTtJQUNJO0lBQ0E7RXdFdVBkO0V4RXpQVTtJQUNJO0lBQ0E7RXdFMlBkO0V4RTdQVTtJQUNJO0lBQ0E7RXdFK1BkO0V4RWpRVTtJQUNJO0lBQ0E7RXdFbVFkO0V4RXJRVTtJQUNJO0lBQ0E7RXdFdVFkO0V4RXpRVTtJQUNJO0lBQ0E7RXdFMlFkO0V4RTdRVTtJQUNJO0lBQ0E7RXdFK1FkO0V4RWpSVTtJQUNJO0lBQ0E7RXdFbVJkO0V4RTlRRTtJQUNJO0V3RWdSTjtBQUNGO0F4RTNRUTtFQURKO0lBRVE7RXdFOFFWO0FBQ0Y7O0F2RW5UQTs7RUFBQTtBQ0FBOztFQUFBO0FzRTZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDNUY3MUVnQjtFNEY4MUVoQixjckVuNUVTO0VxRW81RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFZSTtFQUNJO0FBNzFHUjtBQW0yR3dCO0VBQ0ksbUJyRWh1SEw7RXFFaXVISztFQUNBO0VBQ0E7QUFqMkc1QjtBQXEyR3dCO0VBQ0ksbUJyRXR1SEw7QXFFbVl2QjtBQTAyR1E7RUFDSTtFQUNBLHlCckUxdkhTO0VxRTJ2SFQ7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBeDJHWjtBOUV4WEk7RThFd3RISTtJQVdRO0lBQ0E7RUF2MkdkO0FBQ0Y7QTlFOVhJO0U4RXd0SEk7SUFnQlE7SUFDQTtJQUNBO0lBQ0E7RUF0MkdkO0FBQ0Y7QUF5MkdRO0VBQ0k7QUF2MkdaO0FBeTJHWTtFQUNJO0VBQ0E7QUF2MkdoQjtBQTAyR1k7RUFDSTtBQXgyR2hCLEM7Ozs7QTVGaGJBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBMkU4Tko7O0EzRTNOQTtFQUNJO0EyRThOSjs7QXpFcE9JO0VBREo7SUFFUTtFeUV3T047QUFDRjs7QXpFck9BO0VBQ0k7RUFDQTtFQUNBO0F5RXdPSjtBekV0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFeUV5T047QUFDRjs7QXpFdE9BO0VBR1k7SUFDSTtJQUNBO0V5RXVPZDtFekV6T1U7SUFDSTtJQUNBO0V5RTJPZDtFekU3T1U7SUFDSTtJQUNBO0V5RStPZDtFekVqUFU7SUFDSTtJQUNBO0V5RW1QZDtFekVyUFU7SUFDSTtJQUNBO0V5RXVQZDtFekV6UFU7SUFDSTtJQUNBO0V5RTJQZDtFekU3UFU7SUFDSTtJQUNBO0V5RStQZDtFekVqUVU7SUFDSTtJQUNBO0V5RW1RZDtFekVyUVU7SUFDSTtJQUNBO0V5RXVRZDtFekV6UVU7SUFDSTtJQUNBO0V5RTJRZDtFekU3UVU7SUFDSTtJQUNBO0V5RStRZDtFekVqUlU7SUFDSTtJQUNBO0V5RW1SZDtFekU5UUU7SUFDSTtFeUVnUk47QUFDRjtBekUzUVE7RUFESjtJQUVRO0V5RThRVjtBQUNGOztBeEVuVEE7O0VBQUE7QUNBQTs7RUFBQTtBdUU2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3QzdGNzFFZ0I7RTZGODFFaEIsY3RFbjVFUztFc0VvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBcG9DSTtFQUNJO0FBN3NFUjtBQStzRVE7RUFDSTtFQUNBO0VBQ0E7QUE3c0VaO0FBZ3RFUTtFQUNJO0FBOXNFWjtBQWl0RVE7RUFDSTtBQS9zRVo7QUFrdEVRO0VBQ0k7QUFodEVaO0FBbXRFUTtFQUNJO0FBanRFWjtBQW90RVE7RUFDSTtBQWx0RVo7QUFxdEVRO0VBQ0k7QUFudEVaO0FBc3RFUTtFQUNJO0VBQ0E7VUFBQTtBQXB0RVo7QUF1dEVRO0VBQ0k7QUFydEVaO0FBd3RFUTtFQUNJO0VBQ0E7QUF0dEVaO0FBd3RFWTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLCtCN0Y5aUZjO0U2RitpRmQsVWpDdm9GSztBaUNpYnJCO0FBMHRFUTtFQUNJO0FBeHRFWjtBQTR0RVk7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBMXRFaEI7QUE2dEVZO0VBQ0ksYzdGMW9GTTtBNkYrYXRCO0FBK3RFUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBN3RFWixDOzs7O0E3RjFjQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QTRFOE5KOztBNUUzTkE7RUFDSTtBNEU4Tko7O0ExRXBPSTtFQURKO0lBRVE7RTBFd09OO0FBQ0Y7O0ExRXJPQTtFQUNJO0VBQ0E7RUFDQTtBMEV3T0o7QTFFdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RTBFeU9OO0FBQ0Y7O0ExRXRPQTtFQUdZO0lBQ0k7SUFDQTtFMEV1T2Q7RTFFek9VO0lBQ0k7SUFDQTtFMEUyT2Q7RTFFN09VO0lBQ0k7SUFDQTtFMEUrT2Q7RTFFalBVO0lBQ0k7SUFDQTtFMEVtUGQ7RTFFclBVO0lBQ0k7SUFDQTtFMEV1UGQ7RTFFelBVO0lBQ0k7SUFDQTtFMEUyUGQ7RTFFN1BVO0lBQ0k7SUFDQTtFMEUrUGQ7RTFFalFVO0lBQ0k7SUFDQTtFMEVtUWQ7RTFFclFVO0lBQ0k7SUFDQTtFMEV1UWQ7RTFFelFVO0lBQ0k7SUFDQTtFMEUyUWQ7RTFFN1FVO0lBQ0k7SUFDQTtFMEUrUWQ7RTFFalJVO0lBQ0k7SUFDQTtFMEVtUmQ7RTFFOVFFO0lBQ0k7RTBFZ1JOO0FBQ0Y7QTFFM1FRO0VBREo7SUFFUTtFMEU4UVY7QUFDRjs7QXpFblRBOztFQUFBO0FDQUE7O0VBQUE7QXdFNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0M5RjcxRWdCO0U4RjgxRWhCLGN2RW41RVM7RXVFbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQXRpQ0k7RWxGaHFGQTtFQUNBO0VBQ0E7RWtGZ3FGSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0Esb0N2RXhvRmdCO0V1RXlvRmhCLFlsQ3ByRmE7QWtDMllyQjtBQTJ5RVE7RWxGcnJGSjtFQUNBO0VBQ0E7QWtGNllKLEM7Ozs7QTlGblpBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBNkU4Tko7O0E3RTNOQTtFQUNJO0E2RThOSjs7QTNFcE9JO0VBREo7SUFFUTtFMkV3T047QUFDRjs7QTNFck9BO0VBQ0k7RUFDQTtFQUNBO0EyRXdPSjtBM0V0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFMkV5T047QUFDRjs7QTNFdE9BO0VBR1k7SUFDSTtJQUNBO0UyRXVPZDtFM0V6T1U7SUFDSTtJQUNBO0UyRTJPZDtFM0U3T1U7SUFDSTtJQUNBO0UyRStPZDtFM0VqUFU7SUFDSTtJQUNBO0UyRW1QZDtFM0VyUFU7SUFDSTtJQUNBO0UyRXVQZDtFM0V6UFU7SUFDSTtJQUNBO0UyRTJQZDtFM0U3UFU7SUFDSTtJQUNBO0UyRStQZDtFM0VqUVU7SUFDSTtJQUNBO0UyRW1RZDtFM0VyUVU7SUFDSTtJQUNBO0UyRXVRZDtFM0V6UVU7SUFDSTtJQUNBO0UyRTJRZDtFM0U3UVU7SUFDSTtJQUNBO0UyRStRZDtFM0VqUlU7SUFDSTtJQUNBO0UyRW1SZDtFM0U5UUU7SUFDSTtFMkVnUk47QUFDRjtBM0UzUVE7RUFESjtJQUVRO0UyRThRVjtBQUNGOztBMUVuVEE7O0VBQUE7QUNBQTs7RUFBQTtBeUU2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Qy9GNzFFZ0I7RStGODFFaEIsY3hFbjVFUztFd0VvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBbmhDSTtFbkZuckZBO0VBQ0E7RUFDQTtFSUFBO1VBQUE7RStFb3JGSTtFQUNBO0VBQUE7RUFBQTtFQUNBO0VBQUE7TUFBQTtVQUFBO0VBQ0E7RUFDQTtFQUNBO1VBQUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLGdCeEUxc0ZjO0V3RTJzRmQsWTVGcHJGVztFNEZxckZYO0FBNXpFUjtBQTh6RVE7RUFDSTtBQTV6RVo7QUErekVRO0VyRmx0Rko7RUFVQTtFcUYyc0ZRO0FBN3pFWjtBQWcwRVE7RXBGN3NGSiwyQ0FGaUI7RUFFakIsbUNBRmlCO0VvRml0RlQ7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0Esa0MvRmhyRmdCO0UrRmlyRmhCLGMvRjNyRlc7RStGNHJGWDtBQTl6RVo7QUFnMEVZO0VBR0k7RUFDQSx3Qy9GeHJGWTtFK0Z5ckZaLGN4RTl1Rks7QXdFOGFyQjtBQW8wRVE7RUFDSTtFQUNBO0FBbDBFWjtBQXMwRVk7RUFDSTtBQXAwRWhCO0FBdTBFWTtFQUNJO0FBcjBFaEI7QUF5MEVRO0VuRjd2Rko7RUFDQTtFQUNBO0FtRnViSjtBQXkwRVk7RUFDSTtFQUFBO0VBQUE7QUF2MEVoQixDOzs7O0FDaGNBLGdCQUFnQjtBaEdBaEI7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0E4RStOSjs7QTlFNU5BO0VBQ0k7QThFK05KOztBNUVyT0k7RUFESjtJQUVRO0U0RXlPTjtBQUNGOztBNUV0T0E7RUFDSTtFQUNBO0VBQ0E7QTRFeU9KO0E1RXZPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0U0RTBPTjtBQUNGOztBNUV2T0E7RUFHWTtJQUNJO0lBQ0E7RTRFd09kO0U1RTFPVTtJQUNJO0lBQ0E7RTRFNE9kO0U1RTlPVTtJQUNJO0lBQ0E7RTRFZ1BkO0U1RWxQVTtJQUNJO0lBQ0E7RTRFb1BkO0U1RXRQVTtJQUNJO0lBQ0E7RTRFd1BkO0U1RTFQVTtJQUNJO0lBQ0E7RTRFNFBkO0U1RTlQVTtJQUNJO0lBQ0E7RTRFZ1FkO0U1RWxRVTtJQUNJO0lBQ0E7RTRFb1FkO0U1RXRRVTtJQUNJO0lBQ0E7RTRFd1FkO0U1RTFRVTtJQUNJO0lBQ0E7RTRFNFFkO0U1RTlRVTtJQUNJO0lBQ0E7RTRFZ1JkO0U1RWxSVTtJQUNJO0lBQ0E7RTRFb1JkO0U1RS9RRTtJQUNJO0U0RWlSTjtBQUNGO0E1RTVRUTtFQURKO0lBRVE7RTRFK1FWO0FBQ0Y7O0EzRXBUQTs7RUFBQTtBQ0FBOztFQUFBO0EwRTZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFpTFo7O0FBOUpBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDaEc3MUVnQjtFZ0c4MUVoQixjekVuNUVTO0V5RW81RVQ7QUFyaUVaO0FBdWlFWTtFQUNJO0FBcmlFaEI7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQTBpRWdCO0VBQ0k7QUF4aUVwQjtBQTZpRVE7RUFDSTtBQTNpRVo7O0FBK3hGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFwK0RRO0VBQ0k7QUE1MkNaO0FBODJDWTtFQUNJO0FBNTJDaEI7QUFnM0NRO0VBQ0k7QUE5MkNaO0FBaTNDUTtFQUNJO0VBQ0E7QUEvMkNaO0FBaTNDWTtFQUNJO0FBLzJDaEI7QUFrM0NZO0VBQ0k7QUFoM0NoQjtBQXEzQ1k7RUFDSTtFQUNBO0FBbjNDaEI7QUF3M0NZO0VBQ0k7RUFDQTtBQXQzQ2hCO0FBMDNDUTtFQUNJO0FBeDNDWjtBQW0wR1E7RUFFSTtFQUNBO0VBQ0EsVXBDeHVIUztFakRnQmpCLDJDQUZpQjtFQUVqQixtQ0FGaUI7QXFGeVpyQjtBbEZ2WUk7RWtGNHNISTtJQUVRO0VBbjBHZDtBQUNGO0FBczBHUTtFQUNJO0FBcDBHWjtBQXcwR1k7O0VBRUksY3pFeHZISTtBeUVrYnBCO0FBdTBHZ0I7O0VBQ0k7QUFwMEdwQjtBQTAwR1k7O0VBRUksY3pFbndISztBeUUyYnJCO0FBeTBHZ0I7O0VBQ0k7QUF0MEdwQjtBQTQwR1k7RUFDSTtFQUNBO0FBMTBHaEI7QUE2MEdZO0VBQ0k7QUEzMEdoQjtBbEZ0YUk7RWtGZ3ZIUTtJQUlRO0VBMTBHbEI7QUFDRjtBQTYwR1k7RUFDSTtBQTMwR2hCO0FBNjBHZ0I7RUFDSTtBQTMwR3BCO0FBODBHZ0I7RUFDSTtBQTUwR3BCO0FBaTFHUTtFQUNJO0VBQUE7RUFBQTtFQUNBO01BQUE7RUFDQTtFQUNBO0VBQ0E7TUFBQTtVQUFBO0FBLzBHWjtBbEYzYkk7RWtGcXdISTtJQVFRO0lBQ0E7UUFBQTtJQUNBO1FBQUE7WUFBQTtJQUNBO0VBOTBHZDtBQUNGO0FBaTFHUTtFQUNJO0VBQUE7RUFBQTtFQUNBO01BQUE7VUFBQTtFQUNBO0FBLzBHWjtBbEZ4Y0k7RWtGb3hISTtJQU1RO1FBQUE7WUFBQTtFQTkwR2Q7QUFDRjtBQWkxR1E7RUFDSTtFQUNBO0VBQ0E7QUEvMEdaO0FsRmxkSTtFa0Y4eEhJO0lBTVE7SUFDQTtFQTkwR2Q7QUFDRjtBQWkxR1E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBLzBHWjtBbEZsZUk7RWtGeXlISTtJQVdRO0lBQ0E7SUFDQTtJQUNBO0VBOTBHZDtBQUNGO0FBZzFHWTtFQUNJO0VBQ0E7RUFDQTtFQUNBO1VBQUE7QUE5MEdoQjtBbEZoZkk7RWtGMHpIUTtJQU9RLGN6RXYxSEc7SXlFdzFISDtJQUNBO1lBQUE7RUE3MEdsQjtBQUNGO0FBaTFHZ0I7RUFDSTtVQUFBO0FBLzBHcEI7QWxGMWZJO0VrRmcxSEk7SUFFUTtJQUFBO0lBQUE7RUFwMUdkO0FBQ0Y7QUF1MUdRO0VBQ0k7RUFDQTtFQUNBO0FBcjFHWjtBQXUxR1k7RUFDSTtBQXIxR2hCO0FsRnZnQkk7RWtGczFISTtJQVVRO0lBQ0E7RUFyMUdkO0FBQ0Y7QWxGN2dCSTtFa0ZvMkhRO0lBRVE7SUFDQTtZQUFBO0VBcjFHbEI7QUFDRjtBQXcxR1k7RUFDSTtBQXQxR2hCO0FsRnRoQkk7RWtGKzJIUTtJQUVRO0VBdjFHbEI7QUFDRjtBbEYzaEJJO0VrRisySFE7SUFNUTtFQXQxR2xCO0FBQ0Y7QWxGaGlCSTtFa0Z5M0hRO0lBRVE7SUFDQTtJQUNBO0lBQ0E7SUFDQTtZQUFBO0lBQ0E7SUFDQTtJQUNBLGtCeENsNkhJO0l3Q202SEosZ0J6RTk1SEU7SVpXbEIsbURBRmlCO0lBRWpCLDJDQUZpQjtJcUZ1NUhEO0VBdjFHbEI7QUFDRjtBbEYvaUJJO0VrRjA0SFk7SUFDSTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7WUFBQTtJQUNBO0lBQ0E7SUFDQSxtQnpFeDZIRztFeUVnbEJyQjtFQTIxR2M7SUFDSTtFQXoxR2xCO0VBMjFHYztJQUNJO0VBejFHbEI7QUFDRjtBQTYxR1E7RUFFSTtFQUNBO0VBQ0E7RUFDQTtFQUNBLGN6RTE3SFc7QXlFOGxCdkI7QWxGemtCSTtFa0YrNUhJO0lBU1E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lyRjc3SFosMkNBRmlCO0lBRWpCLG1DQUZpQjtJcUZpOEhMO0VBMzFHZDtBQUNGO0FBNjFHWTtFQUNJLGN6RXg4SE87QXlFNm1CdkI7QWxGeGxCSTtFa0Z5N0hJO0lBRVE7SUFDQTtJQUNBO0lBQ0E7SXJGOThIWix1REFGaUI7SUFFakIsK0NBRmlCO0lBRWpCLHVDQUZpQjtJQUVqQiw0RUFGaUI7SXFGazlITDtZQUFBO0lBQ0E7WUFBQTtJQUNBO0VBLzFHZDtBQUNGO0FsRnBtQkk7RWtGeTdISTtJQWFRO0VBOTFHZDtBQUNGO0FsRnptQkk7RWtGeTdISTtJQWlCUTtJQUNBO0VBNzFHZDtBQUNGO0FBKzFHUTtFQUNJO0VBQUE7TUFBQTtVQUFBO0VBQ0E7QUE3MUdaO0FsRm5uQkk7RWtGODhISTtJQUtRO0lBQUE7SUFBQTtJQUNBO0lBQ0Esc0J6RWgvSE07SXlFaS9ITixrQnhDdC9IUTtJd0N1L0hSO1lBQUE7RUE1MUdkO0FBQ0Y7QWxGNW5CSTtFa0Y4OEhJO0lBYVE7RUEzMUdkO0FBQ0Y7QWxGam9CSTtFa0YrOUhJO0lBRVE7SUFDQTtJQUNBO0VBNTFHZDtBQUNGO0FsRnhvQkk7RWtGKzlISTtJQVFRO0lBQ0E7RUEzMUdkO0FBQ0Y7QUE4MUdRO0VBRUk7RUFDQTtFQUNBO0VBQ0E7RUFDQSxjekV2Z0lXO0F5RTBxQnZCO0FsRnJwQkk7RWtGNCtISTtJQVNRO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQSxjekUvZ0lPO0V5RW1yQnJCO0FBQ0Y7QUErMUdRO0VBQ0ksY3pFcmhJVztBeUV3ckJ2QjtBQWcyR1E7RUFDSSxjekV4aElXO0F5RTByQnZCO0FBZzJHWTtFQUNJO0VBQ0E7RUFDQTtFQUNBO1VBQUE7RUFDQTtFQUNBO0VBQ0E7RUFDQSxtQnpFOWhJTztFeUUraElQLFdwQ3ZpSU87QW9DeXNCdkI7QWxGaHJCSTtFa0ZxZ0lRO0lBWVE7RUE3MUdsQjtBQUNGO0FBbTJHUTtFQUNJO0FBajJHWjtBbEZ4ckJJO0VrRndoSUk7SUFJUTtFQWgyR2Q7QUFDRjtBbEY3ckJJO0VrRmdpSUk7SUFFUTtFQWoyR2Q7QUFDRjtBQW8yR1E7RUFFSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxjekVwa0lXO0F5RWl1QnZCO0FsRjNzQkk7RWtGc2lJSTtJQVdRO0lBQ0E7SUFDQTtJQUNBO0VBbDJHZDtBQUNGO0FBbzJHUTtFQUNJLGN6RTdrSVc7QXlFMnVCdkIsQzs7OztBaEd0dkJBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBK0U4Tko7O0EvRTNOQTtFQUNJO0ErRThOSjs7QTdFcE9JO0VBREo7SUFFUTtFNkV3T047QUFDRjs7QTdFck9BO0VBQ0k7RUFDQTtFQUNBO0E2RXdPSjtBN0V0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFNkV5T047QUFDRjs7QTdFdE9BO0VBR1k7SUFDSTtJQUNBO0U2RXVPZDtFN0V6T1U7SUFDSTtJQUNBO0U2RTJPZDtFN0U3T1U7SUFDSTtJQUNBO0U2RStPZDtFN0VqUFU7SUFDSTtJQUNBO0U2RW1QZDtFN0VyUFU7SUFDSTtJQUNBO0U2RXVQZDtFN0V6UFU7SUFDSTtJQUNBO0U2RTJQZDtFN0U3UFU7SUFDSTtJQUNBO0U2RStQZDtFN0VqUVU7SUFDSTtJQUNBO0U2RW1RZDtFN0VyUVU7SUFDSTtJQUNBO0U2RXVRZDtFN0V6UVU7SUFDSTtJQUNBO0U2RTJRZDtFN0U3UVU7SUFDSTtJQUNBO0U2RStRZDtFN0VqUlU7SUFDSTtJQUNBO0U2RW1SZDtFN0U5UUU7SUFDSTtFNkVnUk47QUFDRjtBN0UzUVE7RUFESjtJQUVRO0U2RThRVjtBQUNGOztBNUVuVEE7O0VBQUE7QUNBQTs7RUFBQTtBMkU2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Q2pHNzFFZ0I7RWlHODFFaEIsYzFFbjVFUztFMEVvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBNzJCSTtFQUNJO0FBcCtFUjtBQXMrRVE7RXZGdDJGSjtBdUZtWUo7QUFzK0VZO0V2RnoyRlI7RXVGMjJGWTtFQUNBLGMxRXYyRk87RTBFdzJGUDtBQXArRWhCO0FBdytFUTtFQUNJO0VBQ0EsYzFFdjNGUTtBMEVpWnBCO0FBaTFHSTtFQUNJO0VBQ0E7QUEvMEdSO0FBazFHSTtFQUNJO0FBaDFHUjtBQW0xR0k7RUFDSSxjMUU3c0hnQjtBMEU0WHhCO0FBbzFHSTtFQUNJO0VBQ0EsYzFFdnVIZTtBMEVxWnZCLEM7Ozs7QWpHaGFBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBZ0Y4Tko7O0FoRjNOQTtFQUNJO0FnRjhOSjs7QTlFcE9JO0VBREo7SUFFUTtFOEV3T047QUFDRjs7QTlFck9BO0VBQ0k7RUFDQTtFQUNBO0E4RXdPSjtBOUV0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFOEV5T047QUFDRjs7QTlFdE9BO0VBR1k7SUFDSTtJQUNBO0U4RXVPZDtFOUV6T1U7SUFDSTtJQUNBO0U4RTJPZDtFOUU3T1U7SUFDSTtJQUNBO0U4RStPZDtFOUVqUFU7SUFDSTtJQUNBO0U4RW1QZDtFOUVyUFU7SUFDSTtJQUNBO0U4RXVQZDtFOUV6UFU7SUFDSTtJQUNBO0U4RTJQZDtFOUU3UFU7SUFDSTtJQUNBO0U4RStQZDtFOUVqUVU7SUFDSTtJQUNBO0U4RW1RZDtFOUVyUVU7SUFDSTtJQUNBO0U4RXVRZDtFOUV6UVU7SUFDSTtJQUNBO0U4RTJRZDtFOUU3UVU7SUFDSTtJQUNBO0U4RStRZDtFOUVqUlU7SUFDSTtJQUNBO0U4RW1SZDtFOUU5UUU7SUFDSTtFOEVnUk47QUFDRjtBOUUzUVE7RUFESjtJQUVRO0U4RThRVjtBQUNGOztBN0VuVEE7O0VBQUE7QUNBQTs7RUFBQTtBNEU2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Q2xHNzFFZ0I7RWtHODFFaEIsYzNFbjVFUztFMkVvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBcDFCUTtFQUNJLGMzRXgzRlc7QTJFMlh2QjtBQTQxR0k7RUFDSTtBQTExR1I7QXBGeFdJO0VvRmlzSEE7SUFJUTtFQXoxR1Y7QUFDRixDOzs7O0FsRzdZQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QWlGOE5KOztBakYzTkE7RUFDSTtBaUY4Tko7O0EvRXBPSTtFQURKO0lBRVE7RStFd09OO0FBQ0Y7O0EvRXJPQTtFQUNJO0VBQ0E7RUFDQTtBK0V3T0o7QS9FdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RStFeU9OO0FBQ0Y7O0EvRXRPQTtFQUdZO0lBQ0k7SUFDQTtFK0V1T2Q7RS9Fek9VO0lBQ0k7SUFDQTtFK0UyT2Q7RS9FN09VO0lBQ0k7SUFDQTtFK0UrT2Q7RS9FalBVO0lBQ0k7SUFDQTtFK0VtUGQ7RS9FclBVO0lBQ0k7SUFDQTtFK0V1UGQ7RS9FelBVO0lBQ0k7SUFDQTtFK0UyUGQ7RS9FN1BVO0lBQ0k7SUFDQTtFK0UrUGQ7RS9FalFVO0lBQ0k7SUFDQTtFK0VtUWQ7RS9FclFVO0lBQ0k7SUFDQTtFK0V1UWQ7RS9FelFVO0lBQ0k7SUFDQTtFK0UyUWQ7RS9FN1FVO0lBQ0k7SUFDQTtFK0UrUWQ7RS9FalJVO0lBQ0k7SUFDQTtFK0VtUmQ7RS9FOVFFO0lBQ0k7RStFZ1JOO0FBQ0Y7QS9FM1FRO0VBREo7SUFFUTtFK0U4UVY7QUFDRjs7QTlFblRBOztFQUFBO0FDQUE7O0VBQUE7QTZFNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0NuRzcxRWdCO0VtRzgxRWhCLGM1RW41RVM7RTRFbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQWFRO0VBQ0k7VUFBQTtFQUNBO0FBOTFHWjtBckYvVUk7RXFGMnFISTtJQUtRO0VBNzFHZDtBQUNGO0FBKzFHWTtFQUNJLG1CNUVodUhPO0U0RWl1SFAsVzVFdnVITTtFNEV3dUhOO0VBQ0E7RUFDQTtBQTcxR2hCO0FBKzFHZ0I7RUFDSTtBQTcxR3BCLEM7Ozs7QW5HclpBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBa0Y4Tko7O0FsRjNOQTtFQUNJO0FrRjhOSjs7QWhGcE9JO0VBREo7SUFFUTtFZ0Z3T047QUFDRjs7QWhGck9BO0VBQ0k7RUFDQTtFQUNBO0FnRndPSjtBaEZ0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFZ0Z5T047QUFDRjs7QWhGdE9BO0VBR1k7SUFDSTtJQUNBO0VnRnVPZDtFaEZ6T1U7SUFDSTtJQUNBO0VnRjJPZDtFaEY3T1U7SUFDSTtJQUNBO0VnRitPZDtFaEZqUFU7SUFDSTtJQUNBO0VnRm1QZDtFaEZyUFU7SUFDSTtJQUNBO0VnRnVQZDtFaEZ6UFU7SUFDSTtJQUNBO0VnRjJQZDtFaEY3UFU7SUFDSTtJQUNBO0VnRitQZDtFaEZqUVU7SUFDSTtJQUNBO0VnRm1RZDtFaEZyUVU7SUFDSTtJQUNBO0VnRnVRZDtFaEZ6UVU7SUFDSTtJQUNBO0VnRjJRZDtFaEY3UVU7SUFDSTtJQUNBO0VnRitRZDtFaEZqUlU7SUFDSTtJQUNBO0VnRm1SZDtFaEY5UUU7SUFDSTtFZ0ZnUk47QUFDRjtBaEYzUVE7RUFESjtJQUVRO0VnRjhRVjtBQUNGOztBL0VuVEE7O0VBQUE7QUNBQTs7RUFBQTtBOEU2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Q3BHNzFFZ0I7RW9HODFFaEIsYzdFbjVFUztFNkVvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBaDBCUTtFQUNJLGM3RTU0Rlc7QTZFMlh2QixDOzs7O0FwR3JZQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QW1GOE5KOztBbkYzTkE7RUFDSTtBbUY4Tko7O0FqRnBPSTtFQURKO0lBRVE7RWlGd09OO0FBQ0Y7O0FqRnJPQTtFQUNJO0VBQ0E7RUFDQTtBaUZ3T0o7QWpGdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RWlGeU9OO0FBQ0Y7O0FqRnRPQTtFQUdZO0lBQ0k7SUFDQTtFaUZ1T2Q7RWpGek9VO0lBQ0k7SUFDQTtFaUYyT2Q7RWpGN09VO0lBQ0k7SUFDQTtFaUYrT2Q7RWpGalBVO0lBQ0k7SUFDQTtFaUZtUGQ7RWpGclBVO0lBQ0k7SUFDQTtFaUZ1UGQ7RWpGelBVO0lBQ0k7SUFDQTtFaUYyUGQ7RWpGN1BVO0lBQ0k7SUFDQTtFaUYrUGQ7RWpGalFVO0lBQ0k7SUFDQTtFaUZtUWQ7RWpGclFVO0lBQ0k7SUFDQTtFaUZ1UWQ7RWpGelFVO0lBQ0k7SUFDQTtFaUYyUWQ7RWpGN1FVO0lBQ0k7SUFDQTtFaUYrUWQ7RWpGalJVO0lBQ0k7SUFDQTtFaUZtUmQ7RWpGOVFFO0lBQ0k7RWlGZ1JOO0FBQ0Y7QWpGM1FRO0VBREo7SUFFUTtFaUY4UVY7QUFDRjs7QWhGblRBOztFQUFBO0FDQUE7O0VBQUE7QStFNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0NyRzcxRWdCO0VxRzgxRWhCLGM5RW41RVM7RThFbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQVlJO0UzRjV0SEE7RTJGOHRISTtFQUNBO0FBNzFHUjtBdkZ2V0k7RXVGaXNIQTtJQU1RO0VBNTFHVjtBQUNGO0FBODFHUTtFQUNJO0VBQUE7RUFBQTtFQUNBO01BQUE7VUFBQTtBQTUxR1o7QUErMUdRO0VBQ0k7RUFDQTtBQTcxR1o7QUFnMkdRO0UxRnB1SEosMkNBRmlCO0VBRWpCLG1DQUZpQjtFMEZ3dUhUO0VBQ0E7RUFDQSxjOUU3dUhXO0U4RTh1SFg7RUFDQTtBQTkxR1o7QUFnMkdZO0VBQ0k7QUE5MUdoQjtBQWkyR1k7RUFDSSxnQjlFNXZITTtFOEU2dkhOO0VBQ0E7RUFDQTtBQS8xR2hCO0F2RnJZSTtFdUZndUhRO0lBT1E7SUFDQTtFQTkxR2xCO0FBQ0Y7QUFnMkdnQjtFQUVJLGM5RWx3SEc7QThFbWF2QjtBQW0yR1k7RUFDSSx5QjlFaHdIUTtBOEUrWnhCO0FBbzJHWTtFQUVJO0VBQ0E7RUFDQTtBQW4yR2hCO0FBcTJHZ0I7RUFFSSxjOUVseEhHO0E4RThhdkI7QUF5MkdnQjtFQUdJLGM5RWx4SEk7QThFeWF4QjtBQTgyR1E7RUFDSTtBQTUyR1o7QXZGL1pJO0V1RjB3SEk7SUFJUTtFQTMyR2Q7QUFDRixDOzs7O0FyR3BjQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QW9GOE5KOztBcEYzTkE7RUFDSTtBb0Y4Tko7O0FsRnBPSTtFQURKO0lBRVE7RWtGd09OO0FBQ0Y7O0FsRnJPQTtFQUNJO0VBQ0E7RUFDQTtBa0Z3T0o7QWxGdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RWtGeU9OO0FBQ0Y7O0FsRnRPQTtFQUdZO0lBQ0k7SUFDQTtFa0Z1T2Q7RWxGek9VO0lBQ0k7SUFDQTtFa0YyT2Q7RWxGN09VO0lBQ0k7SUFDQTtFa0YrT2Q7RWxGalBVO0lBQ0k7SUFDQTtFa0ZtUGQ7RWxGclBVO0lBQ0k7SUFDQTtFa0Z1UGQ7RWxGelBVO0lBQ0k7SUFDQTtFa0YyUGQ7RWxGN1BVO0lBQ0k7SUFDQTtFa0YrUGQ7RWxGalFVO0lBQ0k7SUFDQTtFa0ZtUWQ7RWxGclFVO0lBQ0k7SUFDQTtFa0Z1UWQ7RWxGelFVO0lBQ0k7SUFDQTtFa0YyUWQ7RWxGN1FVO0lBQ0k7SUFDQTtFa0YrUWQ7RWxGalJVO0lBQ0k7SUFDQTtFa0ZtUmQ7RWxGOVFFO0lBQ0k7RWtGZ1JOO0FBQ0Y7QWxGM1FRO0VBREo7SUFFUTtFa0Y4UVY7QUFDRjs7QWpGblRBOztFQUFBO0FDQUE7O0VBQUE7QWdGNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0N0RzcxRWdCO0VzRzgxRWhCLGMvRW41RVM7RStFbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQTN4QlE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsbUJ0R3o2Rlk7QXNHbVh4QjtBQTZtRkk7RUFDSSxjQWxEUTtBQXpqRmhCO0FBZ25Gb0I7RUFDSSx5QkF4RFI7QUF0akZoQjtBQW9uRmdCO0VBQ0k7QUFsbkZwQjtBQW9tRkk7RUFDSSxjQTNDUTtBQXZqRmhCO0FBdW1Gb0I7RUFDSSx5QkFqRFI7QUFwakZoQjtBQW9tRm9CO0VBQ0kseUJBakRSO0FBampGaEI7QUF3bUZnQjtFQUNJO0FBdG1GcEI7QUF3bEZJO0VBQ0ksY0FwQ1E7QUFsakZoQjtBQTJsRm9CO0VBQ0kseUJBMUNSO0FBL2lGaEI7QUF3bEZvQjtFQUNJLHlCQTFDUjtBQTVpRmhCO0FBcWxGb0I7RUFDSSx5QkExQ1I7QUF6aUZoQjtBQXlsRmdCO0VBQ0k7QUF2bEZwQjtBQXlrRkk7RUFDSSxjQTdCUTtBQTFpRmhCO0FBNGtGb0I7RUFDSSx5QkFuQ1I7QUF2aUZoQjtBQXlrRm9CO0VBQ0kseUJBbkNSO0FBcGlGaEI7QUFza0ZvQjtFQUNJLHlCQW5DUjtBQWppRmhCO0FBbWtGb0I7RUFDSSx5QkFuQ1I7QUE5aEZoQjtBQXVrRmdCO0VBQ0k7QUFya0ZwQjtBQWlpRlE7RUFDSTtFQUNBO0FBL2hGWjtBQWtpRlE7RUFDSTtFQUNBO0VBQ0EsY3RHOTdGVztBc0c4WnZCO0FBa2lGWTtFQUdJO0FBbGlGaEIsQzs7OztBdEc1Y0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0FxRjhOSjs7QXJGM05BO0VBQ0k7QXFGOE5KOztBbkZwT0k7RUFESjtJQUVRO0VtRndPTjtBQUNGOztBbkZyT0E7RUFDSTtFQUNBO0VBQ0E7QW1Gd09KO0FuRnRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0VtRnlPTjtBQUNGOztBbkZ0T0E7RUFHWTtJQUNJO0lBQ0E7RW1GdU9kO0VuRnpPVTtJQUNJO0lBQ0E7RW1GMk9kO0VuRjdPVTtJQUNJO0lBQ0E7RW1GK09kO0VuRmpQVTtJQUNJO0lBQ0E7RW1GbVBkO0VuRnJQVTtJQUNJO0lBQ0E7RW1GdVBkO0VuRnpQVTtJQUNJO0lBQ0E7RW1GMlBkO0VuRjdQVTtJQUNJO0lBQ0E7RW1GK1BkO0VuRmpRVTtJQUNJO0lBQ0E7RW1GbVFkO0VuRnJRVTtJQUNJO0lBQ0E7RW1GdVFkO0VuRnpRVTtJQUNJO0lBQ0E7RW1GMlFkO0VuRjdRVTtJQUNJO0lBQ0E7RW1GK1FkO0VuRmpSVTtJQUNJO0lBQ0E7RW1GbVJkO0VuRjlRRTtJQUNJO0VtRmdSTjtBQUNGO0FuRjNRUTtFQURKO0lBRVE7RW1GOFFWO0FBQ0Y7O0FsRm5UQTs7RUFBQTtBQ0FBOztFQUFBO0FpRjZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDdkc3MUVnQjtFdUc4MUVoQixjaEZuNUVTO0VnRm81RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFwc0JJO0VBQ0k7QUE3b0ZSO0FBK29GUTtFQUNJLHVCQVBXO0FBdG9GdkI7QUFncEZRO0VBQ0k7QUE5b0ZaO0FBaXBGUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQUE7RUFBQTtFQUNBO01BQUE7VUFBQTtFQUNBO01BQUE7VUFBQTtFQUNBLGVBckJXO0VBc0JYO0VBQ0EsY3ZHMS9GVztFdUcyL0ZYO0VBQ0E7RUFDQTtBQS9vRlo7QUFpcEZZO0VBRUksY3ZHNS9GUTtBdUc0V3hCO0FBcXBGb0I7RUFDSTtBQW5wRnhCO0FBc3BGb0I7RUFDSTtBQXBwRnhCLEM7Ozs7QXZHbGFBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBc0Y4Tko7O0F0RjNOQTtFQUNJO0FzRjhOSjs7QXBGcE9JO0VBREo7SUFFUTtFb0Z3T047QUFDRjs7QXBGck9BO0VBQ0k7RUFDQTtFQUNBO0FvRndPSjtBcEZ0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFb0Z5T047QUFDRjs7QXBGdE9BO0VBR1k7SUFDSTtJQUNBO0VvRnVPZDtFcEZ6T1U7SUFDSTtJQUNBO0VvRjJPZDtFcEY3T1U7SUFDSTtJQUNBO0VvRitPZDtFcEZqUFU7SUFDSTtJQUNBO0VvRm1QZDtFcEZyUFU7SUFDSTtJQUNBO0VvRnVQZDtFcEZ6UFU7SUFDSTtJQUNBO0VvRjJQZDtFcEY3UFU7SUFDSTtJQUNBO0VvRitQZDtFcEZqUVU7SUFDSTtJQUNBO0VvRm1RZDtFcEZyUVU7SUFDSTtJQUNBO0VvRnVRZDtFcEZ6UVU7SUFDSTtJQUNBO0VvRjJRZDtFcEY3UVU7SUFDSTtJQUNBO0VvRitRZDtFcEZqUlU7SUFDSTtJQUNBO0VvRm1SZDtFcEY5UUU7SUFDSTtFb0ZnUk47QUFDRjtBcEYzUVE7RUFESjtJQUVRO0VvRjhRVjtBQUNGOztBbkZuVEE7O0VBQUE7QUNBQTs7RUFBQTtBa0Y2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Q3hHNzFFZ0I7RXdHODFFaEIsY2pGbjVFUztFaUZvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBcHBCSTtFQUNJO0FBN3JGUjtBQStyRlE7RTlGL2pHSjtBOEZtWUo7QUErckZZO0U5RmxrR1I7RThGb2tHWTtFQUNBLGNqRmhrR087RWlGaWtHUDtBQTdyRmhCO0FBaXNGUTtFQUNJO0VBQ0EsY2pGaGxHUTtBaUZpWnBCO0FBaTFHSTtFQUFJO0FBOTBHUjtBQWcxR0k7RUFDSTtBQTkwR1I7QUFpMUdJO0VBQ0k7QUEvMEdSO0FBazFHSTtFQUNJO0VBQUE7RUFBQTtFQUNBO0VBQUE7TUFBQTtVQUFBO0VBQ0E7QUFoMUdSO0FBbTFHSTtFQUNJO0FBajFHUjtBMUZuWUk7RTBGbXRIQTtJQUlRO0VBaDFHVjtBQUNGO0FBbTFHSTtFQUNJO0FBajFHUjtBQW8xR0k7RUFDSTtFQUNBO0VBQ0E7RUFDQSxjakZ4dkhlO0FpRnNhdkI7QTFGalpJO0UwRit0SEE7STlGMXZIQTtFOEZnYkY7QUFDRjtBQW0xR1E7RTVGMXZISjtFQUNBO0VBQ0E7QTRGMGFKO0FBazFHUTtFQUNJO0VBQ0E7RUFDQTtBQWgxR1o7QTFGaGFJO0UwRjZ1SEk7SUFNUTtFQS8wR2Q7QUFDRjtBQWsxR1E7RUFDSTtFQUNBO0VBQ0E7RUFDQSxjakZoeEhXO0FpRmdjdkI7QUFtMUdRO0VBQ0ksY2pGcHhIVztBaUZtY3ZCO0FBbzFHUTtFQUNJLGNqRm53SFk7QWlGaWJ4QjtBQXExR1E7RUFDSTtFQUNBO0FBbjFHWjtBQXMxR1E7RUFDSTtFQUNBO0VBQ0EsY2pGbnlIVztFaUZveUhYO0FBcDFHWjtBMUZwYUk7RTBGMHZIUTtJQUVRO0lBQ0E7RUFwMUdsQjtBQUNGO0FBdzFHUTtFQUNJLGNqRnp6SFE7RWlGMHpIUjtBQXQxR1o7QTFGcmNJO0UwRjZ4SFE7SUFFUTtFQXQxR2xCO0FBQ0Y7QUEyMUdJO0VBQ0k7RUFDQSxjakY1ekhlO0VpRjZ6SGY7RUFDQTtFQUNBO0VBQ0E7QUF6MUdSO0ExRmxkSTtFMEZxeUhBO0lBU1E7SUFDQTtFQXgxR1Y7QUFDRjtBQTAxR1E7RUFDSTtFQUNBO0FBeDFHWjtBQTIxR1E7RUFHSTtFQUNBO0FBMzFHWjtBQTgxR1E7RUFDSTtBQTUxR1osQzs7OztBeEduZ0JBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBdUY4Tko7O0F2RjNOQTtFQUNJO0F1RjhOSjs7QXJGcE9JO0VBREo7SUFFUTtFcUZ3T047QUFDRjs7QXJGck9BO0VBQ0k7RUFDQTtFQUNBO0FxRndPSjtBckZ0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFcUZ5T047QUFDRjs7QXJGdE9BO0VBR1k7SUFDSTtJQUNBO0VxRnVPZDtFckZ6T1U7SUFDSTtJQUNBO0VxRjJPZDtFckY3T1U7SUFDSTtJQUNBO0VxRitPZDtFckZqUFU7SUFDSTtJQUNBO0VxRm1QZDtFckZyUFU7SUFDSTtJQUNBO0VxRnVQZDtFckZ6UFU7SUFDSTtJQUNBO0VxRjJQZDtFckY3UFU7SUFDSTtJQUNBO0VxRitQZDtFckZqUVU7SUFDSTtJQUNBO0VxRm1RZDtFckZyUVU7SUFDSTtJQUNBO0VxRnVRZDtFckZ6UVU7SUFDSTtJQUNBO0VxRjJRZDtFckY3UVU7SUFDSTtJQUNBO0VxRitRZDtFckZqUlU7SUFDSTtJQUNBO0VxRm1SZDtFckY5UUU7SUFDSTtFcUZnUk47QUFDRjtBckYzUVE7RUFESjtJQUVRO0VxRjhRVjtBQUNGOztBcEZuVEE7O0VBQUE7QUNBQTs7RUFBQTtBbUY2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Q3pHNzFFZ0I7RXlHODFFaEIsY2xGbjVFUztFa0ZvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBV0E7QUF4NUNJO0VBQ0k7QUFuOERSO0FBcThEUTtFQUNJO0VBQ0E7QUFuOERaO0FBczhEUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFwOERaO0FBdThEUTtFQUNJO0FBcjhEWjtBQXNzRlE7RUFDSTtBQXBzRlo7QUErMEdJO0VBQ0k7RUFDQTtBQTcwR1I7QTNGcFdJO0UyRml4RUE7SUFvNkNJO0VBNzBHTjtBQUNGO0FBKzBHSTtFQUNJLGNsRmh1SGU7RWtGaXVIZjtFQUNBO0FBNzBHUjtBM0Y5V0k7RTJGaXhFQTtJQTg2Q0k7SUFDQTtFQTcwR047QUFDRjtBQSswR0k7RUFDSTtBQTcwR1I7QUFnMUdJO0VBQ0k7QUE5MEdSO0FBaTFHSTtFQUNJO0FBLzBHUjtBQWkxR1E7RUFDSTtFQUFBO0VBQUE7RUFDQTtFQUFBO01BQUE7VUFBQTtFQUNBO0VBQ0E7RUFDQTtBQS8wR1o7QUFtMUdZO0VBQ0k7RUFDQTtBQWoxR2hCO0FBczFHSTtFQUNJLGdCbEZqeEhjO0VrRmt4SGQ7RUFDQTtFQUNBO0FBcDFHUjtBM0Y5WUk7RTJGOHRIQTtJQU9RO0VBbjFHVjtBQUNGO0FBczFHUTtFQUNJO0FBcDFHWjtBQXUxR1E7RUFDSTtBQXIxR1o7QUF1MUdZO0VBQ0k7RUFDQTtFQUNBO0FBcjFHaEI7QUF3MUdZO0VBQ0k7RUFDQTtFQUNBO0FBdDFHaEI7QUEwMUdRO0VBQ0k7QUF4MUdaO0FBMjFHUTtFQUNJO0VBQUE7RUFBQTtFQUNBO01BQUE7RUFDQTtNQUFBO1VBQUE7RUFDQTtNQUFBO1VBQUE7QUF6MUdaO0FBNjFHSTtFQUNJO0VBQ0E7RUFDQTtFQUNBO01BQUE7QUEzMUdSO0FBNjFHUTtFQUNJO0FBMzFHWjtBQSsxR1k7RTlGM3pIUiw0RkFGaUI7RUFFakIsb0ZBRmlCO0VBRWpCLDRFQUZpQjtFQUVqQixrSEFGaUI7RThGK3pITDtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxxQ2xGN3lIUTtFa0Y4eUhSLFU3Q3AxSEs7QTZDdWZyQjtBQWsyR0k7RUFDSSxjbEYxMEhlO0VrRjIwSGY7RUFDQTtBQWgyR1I7QUFrMkdRO0VBQ0k7RUFBQTtFQUFBO0VBQ0E7TUFBQTtVQUFBO0VBQ0E7QUFoMkdaO0FBbzJHSTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQWwyR1I7QUFxMkdJO0VBQ0ksY2xGcDJIZTtFa0ZxMkhmO0VBQ0E7RUFDQTtFQUNBO0FBbjJHUjtBQXEyR1E7RUFDSSxjbEYzMkhXO0VrRjQySFg7RUFDQTtFQUNBO0FBbjJHWjtBM0YvZEk7RTJGOHpISTtJQU9RO0VBbDJHZDtBQUNGO0FBcTJHUTtFQUNJO0VBQ0E7RUFDQTtBQW4yR1o7QUFzMkdRO0VBQ0k7QUFwMkdaO0FBdzJHSTtFQUNJO0FBdDJHUjtBQXkyR0k7RUFDSTtFQUNBO0VBQ0E7QUF2MkdSO0EzRjNnQkk7RTJGKzJIQTtJQU1RO0VBdDJHVjtBQUNGO0FBeTJHSTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsY2xGcDVIZTtFa0ZxNUhmO0FBdjJHUjtBM0Z4aEJJO0UyRnkzSEE7SUFTUTtJQUNBO0VBdDJHVjtBQUNGO0FBeTJHSTtFQUNJO0FBdjJHUjtBQTAyR0k7RUFDSTtFQUNBO0FBeDJHUjtBQTAyR1E7RUFDSTtNQUFBO0VBQ0E7RUFDQTtBQXgyR1o7QUE0MkdJO0VBQ0k7RUFDQTtBQTEyR1I7QUE2MkdJO0VBQ0k7RUFDQTtBQTMyR1I7QUErMkdRO0VBQ0k7QUE3MkdaLEM7Ozs7QXpHcmxCQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QXdGOE5KOztBeEYzTkE7RUFDSTtBd0Y4Tko7O0F0RnBPSTtFQURKO0lBRVE7RXNGd09OO0FBQ0Y7O0F0RnJPQTtFQUNJO0VBQ0E7RUFDQTtBc0Z3T0o7QXRGdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RXNGeU9OO0FBQ0Y7O0F0RnRPQTtFQUdZO0lBQ0k7SUFDQTtFc0Z1T2Q7RXRGek9VO0lBQ0k7SUFDQTtFc0YyT2Q7RXRGN09VO0lBQ0k7SUFDQTtFc0YrT2Q7RXRGalBVO0lBQ0k7SUFDQTtFc0ZtUGQ7RXRGclBVO0lBQ0k7SUFDQTtFc0Z1UGQ7RXRGelBVO0lBQ0k7SUFDQTtFc0YyUGQ7RXRGN1BVO0lBQ0k7SUFDQTtFc0YrUGQ7RXRGalFVO0lBQ0k7SUFDQTtFc0ZtUWQ7RXRGclFVO0lBQ0k7SUFDQTtFc0Z1UWQ7RXRGelFVO0lBQ0k7SUFDQTtFc0YyUWQ7RXRGN1FVO0lBQ0k7SUFDQTtFc0YrUWQ7RXRGalJVO0lBQ0k7SUFDQTtFc0ZtUmQ7RXRGOVFFO0lBQ0k7RXNGZ1JOO0FBQ0Y7QXRGM1FRO0VBREo7SUFFUTtFc0Y4UVY7QUFDRjs7QXJGblRBOztFQUFBO0FDQUE7O0VBQUE7QW9GNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0MxRzcxRWdCO0UwRzgxRWhCLGNuRm41RVM7RW1GbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQVlJO0VBQ0k7RUFDQSxrQmxEbnVIZ0I7RWtEb3VIaEI7RUFDQTtFQUNBO0FBNzFHUjtBNUZ6V0k7RTRGaXNIQTtJQVFRO0VBNTFHVjtBQUNGO0E1RjlXSTtFNEZpc0hBO0lBWVE7SUFDQTtFQTMxR1Y7QUFDRjtBQTYxR1E7RUFDSTtBQTMxR1o7QTVGdlhJO0U0Rml0SEk7SUFJUTtFQTExR2Q7QUFDRjtBQTYxR1E7RUFDSTtFQUNBO0FBMzFHWjtBNUZoWUk7RTRGeXRISTtJQUtRO0lBQ0E7RUExMUdkO0FBQ0Y7QUE0MUdZO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBMTFHaEI7QTVGOVlJO0U0Rmt1SFE7SUFTUTtJQUNBO0VBejFHbEI7QUFDRjtBQTQxR1k7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBQTExR2hCO0E1RjFaSTtFNEZndkhRO0lBT1E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtFQXoxR2xCO0FBQ0Y7QTVGbmFJO0U0Rjh2SFk7SUFFUTtJQUNBO0VBejFHdEI7QUFDRjtBQTYxR1k7RUFDSTtFQUNBO0FBMzFHaEI7QTVGN2FJO0U0RnN3SFE7SUFLUTtJQUNBO0VBMTFHbEI7QUFDRjtBNUZuYkk7RTRGZ3hIUTtJQUVRO0lBQ0E7RUEzMUdsQjtBQUNGO0FBODFHWTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0FBNTFHaEI7QTVGL2JJO0U0RnV4SFE7SUFPUTtJQUNBO0VBMzFHbEI7QUFDRjtBQTYxR2dCO0VBQ0k7RUFDQTtBQTMxR3BCO0FBKzFHWTtFQUNJO0VBQ0E7QUE3MUdoQjtBNUY3Y0k7RTRGd3lIUTtJQUtRO0lBQ0E7RUE1MUdsQjtBQUNGO0FBODFHZ0I7RUFDSTtBQTUxR3BCO0E1RnRkSTtFNEZpekhZO0lBSVE7RUEzMUd0QjtBQUNGO0FBKzFHWTtFQUNJO0VBQ0E7QUE3MUdoQjtBNUYvZEk7RTRGMHpIUTtJQUtRO0lBQ0E7RUE1MUdsQjtBQUNGO0FBODFHZ0I7RUFDSTtFQUNBO0FBNTFHcEI7QTVGemVJO0U0Rm0wSFk7SUFLUTtJQUNBO0VBMzFHdEI7QUFDRjtBQTgxR2dCO0VBQ0k7RUFDQTtBQTUxR3BCO0E1Rm5mSTtFNEY2MEhZO0lBS1E7SUFDQTtFQTMxR3RCO0FBQ0Y7QUE4MUdnQjtFQUNJO0VBQ0E7QUE1MUdwQjtBNUY3Zkk7RTRGdTFIWTtJQUtRO0lBQ0E7RUEzMUd0QjtBQUNGO0FBZzJHZ0I7RUFDSTtBQTkxR3BCO0FBbzJHWTtFQUNJO0FBbDJHaEI7QUFxMkdZO0VBQ0k7RUFBQTtNQUFBO1VBQUE7QUFuMkdoQjtBNUY1Z0JJO0U0RjgySFE7SUFJUTtJQUFBO1FBQUE7WUFBQTtJQUNBO1FBQUE7WUFBQTtFQWwyR2xCO0FBQ0Y7QUFxMkdZO0VBQ0k7QUFuMkdoQjtBNUZyaEJJO0U0RnUzSFE7SUFJUTtJQUNBO1FBQUE7WUFBQTtFQWwyR2xCO0FBQ0Y7QUFzMkdRO0VBQ0k7RUFDQTtFQUNBO0VBQ0EsY25GMTVIVztFbUYyNUhYO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFyMkdaO0E1RnppQkk7RTRGaTRISTtJQWdCUTtJQUNBO0VBcDJHZDtBQUNGO0FBczJHWTtFQUNJO0FBcDJHaEI7QTVGbGpCSTtFNEZxNUhRO0lBSVE7RUFuMkdsQjtBQUNGO0FBczJHWTtFQUNJO0FBcDJHaEI7QUF3MkdRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUF0MkdaO0FBeTJHUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxjbkZ2OEhXO0VtRnc4SFg7RUFDQTtBQXYyR1o7QTVGN2tCSTtFNEY0NkhJO0lBV1E7SUFDQTtFQXQyR2Q7QUFDRjtBQXkyR1E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQXYyR1o7QUEwMkdRO0VBQ0k7RUFDQSxjbkZ4K0hTO0VtRnkrSFQ7RUFDQTtFQUNBO0FBeDJHWjtBQTIyR1E7RUFDSTtFQUNBO0VBQ0E7QUF6MkdaO0FBNDJHUTtFQUNJO0FBMTJHWjtBQTYyR1E7RUFDSTtBQTMyR1o7QTVGOW1CSTtFNEYyOUhRO0lBR1EscUNuRng5SEk7SW1GeTlISjtJQUNBO0lBQUE7SUFBQTtJQUNBO0lBQ0E7UUFBQTtJQUNBO0lBQ0E7RUE1MkdsQjtBQUNGO0FBODJHZ0I7RUFDSTtFQUNBO0VBQ0E7RUFDQSxrQzFHdDlIUTtBMEcwbUI1QjtBNUYvbkJJO0U0RnUrSFk7SUFPUTtJQUFBO0lBQUE7SUFDQTtRQUFBO1lBQUE7SUFDQTtJQUNBLHFDbkYzK0hBO0ltRjQrSEE7RUEzMkd0QjtBQUNGO0FBZzNHUTtFQUNJO0FBOTJHWjtBNUYzb0JJO0U0RncvSEk7SUFJUTtFQTcyR2Q7QUFDRjtBQWczR1E7RUFDSTtFQUNBO0VBQ0EsY25GeGhJVztBbUYwcUJ2QjtBNUZycEJJO0U0RmdnSUk7SUFNUTtFQTcyR2Q7QUFDRjtBQSsyR1k7RUFDSSxjbkYvaElPO0VtRmdpSVA7QUE3MkdoQjtBQWkzR1E7RUFDSTtFQUNBO0VBQ0E7QUEvMkdaO0E1Rm5xQkk7RTRGK2dJSTtJQU1RO0VBOTJHZDtBQUNGO0FBaTNHUTtFQUNJO0FBLzJHWjtBNUYzcUJJO0U0RnloSUk7SUFJUTtFQTkyR2Q7QUFDRjtBQWkzR1E7RUFDSTtBQS8yR1o7QTVGbnJCSTtFNEZpaUlJO0lBSVE7RUE5MkdkO0FBQ0Y7QUFpM0dRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBLzJHWixDOzs7O0ExR2h1QkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0F5RjhOSjs7QXpGM05BO0VBQ0k7QXlGOE5KOztBdkZwT0k7RUFESjtJQUVRO0V1RndPTjtBQUNGOztBdkZyT0E7RUFDSTtFQUNBO0VBQ0E7QXVGd09KO0F2RnRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0V1RnlPTjtBQUNGOztBdkZ0T0E7RUFHWTtJQUNJO0lBQ0E7RXVGdU9kO0V2RnpPVTtJQUNJO0lBQ0E7RXVGMk9kO0V2RjdPVTtJQUNJO0lBQ0E7RXVGK09kO0V2RmpQVTtJQUNJO0lBQ0E7RXVGbVBkO0V2RnJQVTtJQUNJO0lBQ0E7RXVGdVBkO0V2RnpQVTtJQUNJO0lBQ0E7RXVGMlBkO0V2RjdQVTtJQUNJO0lBQ0E7RXVGK1BkO0V2RmpRVTtJQUNJO0lBQ0E7RXVGbVFkO0V2RnJRVTtJQUNJO0lBQ0E7RXVGdVFkO0V2RnpRVTtJQUNJO0lBQ0E7RXVGMlFkO0V2RjdRVTtJQUNJO0lBQ0E7RXVGK1FkO0V2RmpSVTtJQUNJO0lBQ0E7RXVGbVJkO0V2RjlRRTtJQUNJO0V1RmdSTjtBQUNGO0F2RjNRUTtFQURKO0lBRVE7RXVGOFFWO0FBQ0Y7O0F0Rm5UQTs7RUFBQTtBQ0FBOztFQUFBO0FxRjZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDM0c3MUVnQjtFMkc4MUVoQixjcEZuNUVTO0VvRm81RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFsbkJJO0VBQ0k7RUFDQTtFQUFBO0VBQUE7RUFDQTtFQUFBO01BQUE7VUFBQTtFQThCQTtBQTV2RlI7QUFndUZRO0VqR3psR0o7RWlHMmxHUSxjcEYvbEdXO0FvRmlZdkI7QUFpdUZRO0VBQ0k7RUFDQTtFQUFBO0VBQUE7RUFDQTtFQUFBO01BQUE7VUFBQTtFQUNBO01BQUE7VUFBQTtFQUNBO01BQUE7VUFBQTtBQS90Rlo7QUFpdUZZO0VBQ0k7QUEvdEZoQjtBQW11RlE7RUFDSTtFQUFBO0VBQUE7RUFDQTtBQWp1Rlo7QUE0dUZRO0VBQ0k7TUFBQTtVQUFBO0FBMXVGWixDOzs7O0EzRzdaQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QTBGOE5KOztBMUYzTkE7RUFDSTtBMEY4Tko7O0F4RnBPSTtFQURKO0lBRVE7RXdGd09OO0FBQ0Y7O0F4RnJPQTtFQUNJO0VBQ0E7RUFDQTtBd0Z3T0o7QXhGdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RXdGeU9OO0FBQ0Y7O0F4RnRPQTtFQUdZO0lBQ0k7SUFDQTtFd0Z1T2Q7RXhGek9VO0lBQ0k7SUFDQTtFd0YyT2Q7RXhGN09VO0lBQ0k7SUFDQTtFd0YrT2Q7RXhGalBVO0lBQ0k7SUFDQTtFd0ZtUGQ7RXhGclBVO0lBQ0k7SUFDQTtFd0Z1UGQ7RXhGelBVO0lBQ0k7SUFDQTtFd0YyUGQ7RXhGN1BVO0lBQ0k7SUFDQTtFd0YrUGQ7RXhGalFVO0lBQ0k7SUFDQTtFd0ZtUWQ7RXhGclFVO0lBQ0k7SUFDQTtFd0Z1UWQ7RXhGelFVO0lBQ0k7SUFDQTtFd0YyUWQ7RXhGN1FVO0lBQ0k7SUFDQTtFd0YrUWQ7RXhGalJVO0lBQ0k7SUFDQTtFd0ZtUmQ7RXhGOVFFO0lBQ0k7RXdGZ1JOO0FBQ0Y7QXhGM1FRO0VBREo7SUFFUTtFd0Y4UVY7QUFDRjs7QXZGblRBOztFQUFBO0FDQUE7O0VBQUE7QXNGNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0M1RzcxRWdCO0U0RzgxRWhCLGNyRm41RVM7RXFGbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQXRrQkk7RUFDSTtBQTN3RlI7QUE2d0ZRO0VBQ0k7QUEzd0ZaO0FBMDFHSTtFQUNJO01BQUE7VUFBQTtFQUNBO0VBQUE7RUFBQTtFQUNBO0FBeDFHUjtBOUY3V0k7RThGa3NIQTtJQU1RO0lBQ0E7RUF2MUdWO0FBQ0Y7QUF5MUdRO0VBQ0k7QUF2MUdaO0FBMjFHSTtFakdqdUhBLDRGQUZpQjtFQUVqQixvRkFGaUI7RUFFakIsNEVBRmlCO0VBRWpCLGtIQUZpQjtFaUdxdUhiLHNCckY5dUhjO0VxRit1SGQ7RUFDQSxrQnBEcnZIZ0I7QW9ENFp4QjtBQTQxR0k7RUFDSSxzQnJGcHZIYztFcUZxdkhkO0VBQ0E7QUExMUdSO0E5RjFXSTtFOEZpc0hBO0lBTVE7UUFBQTtFQXoxR1Y7QUFDRjtBQTQxR0k7RUFDSSxjckZudkhlO0VxRm92SGY7RUFDQTtBQTExR1I7QUE2MUdJO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBMzFHUjtBQTgxR0k7RUFDSSxjckZsdkhnQjtBcUZzWnhCO0FBKzFHSTtFQUNJLHNCckZqeEhjO0VxRmt4SGQ7RUFDQTtFQUNBO0FBNzFHUjtBOUZyWUk7RThGOHRIQTtJQU9RO1FBQUE7SUFDQSx5QnJGMXdIWTtFcUY4YXRCO0FBQ0Y7QUErMUdJO0VBQ0k7RUFDQTtFQUNBO0FBNzFHUjtBOUZoWkk7RThGMHVIQTtJQU1RO0VBNTFHVjtBQUNGO0FBODFHUTtFQUNJLGNyRmh5SFc7QXFGb2N2QjtBQTgxR1k7RUFDSTtBQTUxR2hCO0FBZzJHUTtFQUNJLGNyRm54SFk7QXFGcWJ4QjtBQWkyR1E7RUFDSSxjckY5eEhVO0FxRitidEI7QUFtMkdJO0VBQ0kseUJyRnp5SGdCO0VxRjB5SGhCLGNyRmx6SGU7RXFGbXpIZjtBQWoyR1I7QTlGdGFJO0U4Rm93SEE7SUFNUTtRQUFBO0lBQ0E7RUFoMkdWO0FBQ0Y7QTlGbmNJO0U4RjJ4SEE7SUFXUTtFQS8xR1Y7QUFDRjtBQWkyR1E7RUFDSSxjckYvekhXO0VxRmcwSFg7QUEvMUdaO0FBaTJHWTtFQUNJO0FBLzFHaEI7QUFvMkdJO0VBQ0ksY3JGejBIZTtBcUZ1ZXZCO0FBczJHUTtFQUNJO0FBcDJHWjtBQXcyR0k7RUFDSSxjckZuMUhlO0VxRm8xSGY7RUFDQTtFQUNBO0VBQ0E7QUF0MkdSO0FBeTJHSTtFQUNJO0VBQ0E7QUF2MkdSO0FBeTJHUTtFQUNJO0VBQ0E7RUFDQTtFQUFBO0VBQUE7RUFDQTtNQUFBO1VBQUE7RUFDQTtNQUFBO1VBQUE7QUF2MkdaO0FBMjJHSTtFQUNJO0FBejJHUjtBQTYyR1E7RUFDSSxjckZ4M0hTO0FxRjZnQnJCO0FBODJHUTtFQUNJLGNyRjUySFc7RXFGNjJIWDtBQTUyR1o7QUErMkdRO0VBQ0ksY3JGajRIUztBcUZvaEJyQjtBQWkzR0k7RUFDSTtBQS8yR1I7QUFrM0dJO0VBQ0k7QUFoM0dSLEM7Ozs7QTVHMWhCQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QTJGOE5KOztBM0YzTkE7RUFDSTtBMkY4Tko7O0F6RnBPSTtFQURKO0lBRVE7RXlGd09OO0FBQ0Y7O0F6RnJPQTtFQUNJO0VBQ0E7RUFDQTtBeUZ3T0o7QXpGdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RXlGeU9OO0FBQ0Y7O0F6RnRPQTtFQUdZO0lBQ0k7SUFDQTtFeUZ1T2Q7RXpGek9VO0lBQ0k7SUFDQTtFeUYyT2Q7RXpGN09VO0lBQ0k7SUFDQTtFeUYrT2Q7RXpGalBVO0lBQ0k7SUFDQTtFeUZtUGQ7RXpGclBVO0lBQ0k7SUFDQTtFeUZ1UGQ7RXpGelBVO0lBQ0k7SUFDQTtFeUYyUGQ7RXpGN1BVO0lBQ0k7SUFDQTtFeUYrUGQ7RXpGalFVO0lBQ0k7SUFDQTtFeUZtUWQ7RXpGclFVO0lBQ0k7SUFDQTtFeUZ1UWQ7RXpGelFVO0lBQ0k7SUFDQTtFeUYyUWQ7RXpGN1FVO0lBQ0k7SUFDQTtFeUYrUWQ7RXpGalJVO0lBQ0k7SUFDQTtFeUZtUmQ7RXpGOVFFO0lBQ0k7RXlGZ1JOO0FBQ0Y7QXpGM1FRO0VBREo7SUFFUTtFeUY4UVY7QUFDRjs7QXhGblRBOztFQUFBO0FDQUE7O0VBQUE7QXVGNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0M3RzcxRWdCO0U2RzgxRWhCLGN0Rm41RVM7RXNGbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQWlCSTtFQUNJO0VBQ0E7RUFDQTtBQWwyR1I7QUFvMkdRO0VBVko7RUFDQTtBQXYxR0o7QUFvMkdRO0VBZEo7RUFDQTtBQW4xR0o7QUFvMkdRO0VBbEJKO0VBQ0E7QUEvMEdKO0FBbzJHUTtFQUNJO0FBbDJHWixDOzs7O0E3R3RaQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QTRGOE5KOztBNUYzTkE7RUFDSTtBNEY4Tko7O0ExRnBPSTtFQURKO0lBRVE7RTBGd09OO0FBQ0Y7O0ExRnJPQTtFQUNJO0VBQ0E7RUFDQTtBMEZ3T0o7QTFGdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RTBGeU9OO0FBQ0Y7O0ExRnRPQTtFQUdZO0lBQ0k7SUFDQTtFMEZ1T2Q7RTFGek9VO0lBQ0k7SUFDQTtFMEYyT2Q7RTFGN09VO0lBQ0k7SUFDQTtFMEYrT2Q7RTFGalBVO0lBQ0k7SUFDQTtFMEZtUGQ7RTFGclBVO0lBQ0k7SUFDQTtFMEZ1UGQ7RTFGelBVO0lBQ0k7SUFDQTtFMEYyUGQ7RTFGN1BVO0lBQ0k7SUFDQTtFMEYrUGQ7RTFGalFVO0lBQ0k7SUFDQTtFMEZtUWQ7RTFGclFVO0lBQ0k7SUFDQTtFMEZ1UWQ7RTFGelFVO0lBQ0k7SUFDQTtFMEYyUWQ7RTFGN1FVO0lBQ0k7SUFDQTtFMEYrUWQ7RTFGalJVO0lBQ0k7SUFDQTtFMEZtUmQ7RTFGOVFFO0lBQ0k7RTBGZ1JOO0FBQ0Y7QTFGM1FRO0VBREo7SUFFUTtFMEY4UVY7QUFDRjs7QXpGblRBOztFQUFBO0FDQUE7O0VBQUE7QXdGNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0M5RzcxRWdCO0U4RzgxRWhCLGN2Rm41RVM7RXVGbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQWFRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxjdkYvdEhXO0V1Rmd1SFg7RUFDQTtBQTkxR1o7QWhHOVdJO0VnR2tzSEk7SUFhUSxtQnZGdHRITTtFdUZ5WHBCO0FBQ0Y7QUErMUdZO0VBRUk7RUFDQTtBQTkxR2hCO0FBaTJHWTtFQUNJO0VBQ0EsV3ZGdnZITTtFdUZ3dkhOLHlCdkZsdkhPO0V1Rm12SFA7RUFDQTtFQUNBO0VBQ0E7QUEvMUdoQjtBaEdoWUk7RWdHd3RIUTtJQVVRO0VBOTFHbEI7QUFDRjtBQWcyR2dCO0VBQ0k7QUE5MUdwQjtBQWsyR1k7RUFDSSx5QnZGbHZITTtBdUZrWnRCO0FoRzNZSTtFZ0cwdUhRO0lBSVE7RUEvMUdsQjtBQUNGO0FBaTJHZ0I7RUFDSTtFQUNBO0VBQ0EsVXZGL3dIRTtFdUZneEhGLFl2Rmh4SEU7QXVGaWJ0QjtBaEd0Wkk7RWdHaXZIWTtJQU9RO0lBQ0E7SUFDQSxVdkZyeEhGO0l1RnN4SEUsWXZGdHhIRjtFdUZ3YnBCO0FBQ0YsQzs7OztBOUc5YkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0E2RjhOSjs7QTdGM05BO0VBQ0k7QTZGOE5KOztBM0ZwT0k7RUFESjtJQUVRO0UyRndPTjtBQUNGOztBM0ZyT0E7RUFDSTtFQUNBO0VBQ0E7QTJGd09KO0EzRnRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0UyRnlPTjtBQUNGOztBM0Z0T0E7RUFHWTtJQUNJO0lBQ0E7RTJGdU9kO0UzRnpPVTtJQUNJO0lBQ0E7RTJGMk9kO0UzRjdPVTtJQUNJO0lBQ0E7RTJGK09kO0UzRmpQVTtJQUNJO0lBQ0E7RTJGbVBkO0UzRnJQVTtJQUNJO0lBQ0E7RTJGdVBkO0UzRnpQVTtJQUNJO0lBQ0E7RTJGMlBkO0UzRjdQVTtJQUNJO0lBQ0E7RTJGK1BkO0UzRmpRVTtJQUNJO0lBQ0E7RTJGbVFkO0UzRnJRVTtJQUNJO0lBQ0E7RTJGdVFkO0UzRnpRVTtJQUNJO0lBQ0E7RTJGMlFkO0UzRjdRVTtJQUNJO0lBQ0E7RTJGK1FkO0UzRmpSVTtJQUNJO0lBQ0E7RTJGbVJkO0UzRjlRRTtJQUNJO0UyRmdSTjtBQUNGO0EzRjNRUTtFQURKO0lBRVE7RTJGOFFWO0FBQ0Y7O0ExRm5UQTs7RUFBQTtBQ0FBOztFQUFBO0F5RjZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDL0c3MUVnQjtFK0c4MUVoQixjeEZuNUVTO0V3Rm81RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFoZ0JRO0VBQ0k7RUFDQSxvQkFOd0I7RUFPeEIscUJBUHdCO0FBMTBGcEM7QUFvMUZRO0VBQ0k7RUFDQTtFQUNBO0VBQ0EsVW5EL3RHUztBbUQ2WXJCO0FBcTFGUTtFcEdsdEdKLHVEQUZpQjtFQUVqQiwrQ0FGaUI7RUFFakIsdUNBRmlCO0VBRWpCLDRFQUZpQjtFb0dzdEdUO01BQUE7QUFuMUZaO0FBczFGUTtFQUNJO0VBQ0E7QUFwMUZaO0FBdTFGUTtFQUNJO0VBQ0E7QUFyMUZaO0FBdTFGWTtFcEdodUdSLHNEQUZpQjtFQUVqQiw4Q0FGaUI7RW9Hb3VHTDtFQUNBO0VBQ0E7RUFDQTtFQUNBLHlCL0dwdUdNO0UrR3F1R047QUFyMUZoQjtBQTAxRmdCO0VBQ0kseUJ4Rjd2R0M7QXdGcWFyQjtBQTYxRlE7RUFDSTtFQUFBO0VBQUE7RUFDQTtNQUFBO1VBQUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBMzFGWjtBQTYxRlk7RUFDSTtBQTMxRmhCO0FBODFGWTtFQUNJO0FBNTFGaEI7QUFnMkZRO0VwR3B3R0osMkNBRmlCO0VBRWpCLG1DQUZpQjtFb0d3d0dULGMvR3B3R1U7RStHcXdHVjtBQTkxRlo7QUFnMkZZO0VBQ0ksY3hGMXhHSztBd0Y0YnJCO0FBazJGUTtFQUNJO0VBQ0E7QUFoMkZaO0FBbTJGUTtFQUNJO0FBajJGWjtBQW8yRlE7RUFDSTtFQUNBO0FBbDJGWjtBakd2YUk7RWlHNndHUTtJbkc5eEdSO0lBQ0E7SUFDQTtJRERBLDJFQUZpQjtJQUVqQixtRUFGaUI7RW9HZ2NuQjtFQW8yRlU7SW5HOXlHUjtJQUNBO0lBQ0E7SW1HOHlHWTtFQWgyRmQ7QUFDRixDOzs7O0EvR3JkQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QThGOE5KOztBOUYzTkE7RUFDSTtBOEY4Tko7O0E1RnBPSTtFQURKO0lBRVE7RTRGd09OO0FBQ0Y7O0E1RnJPQTtFQUNJO0VBQ0E7RUFDQTtBNEZ3T0o7QTVGdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RTRGeU9OO0FBQ0Y7O0E1RnRPQTtFQUdZO0lBQ0k7SUFDQTtFNEZ1T2Q7RTVGek9VO0lBQ0k7SUFDQTtFNEYyT2Q7RTVGN09VO0lBQ0k7SUFDQTtFNEYrT2Q7RTVGalBVO0lBQ0k7SUFDQTtFNEZtUGQ7RTVGclBVO0lBQ0k7SUFDQTtFNEZ1UGQ7RTVGelBVO0lBQ0k7SUFDQTtFNEYyUGQ7RTVGN1BVO0lBQ0k7SUFDQTtFNEYrUGQ7RTVGalFVO0lBQ0k7SUFDQTtFNEZtUWQ7RTVGclFVO0lBQ0k7SUFDQTtFNEZ1UWQ7RTVGelFVO0lBQ0k7SUFDQTtFNEYyUWQ7RTVGN1FVO0lBQ0k7SUFDQTtFNEYrUWQ7RTVGalJVO0lBQ0k7SUFDQTtFNEZtUmQ7RTVGOVFFO0lBQ0k7RTRGZ1JOO0FBQ0Y7QTVGM1FRO0VBREo7SUFFUTtFNEY4UVY7QUFDRjs7QTNGblRBOztFQUFBO0FDQUE7O0VBQUE7QTBGNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0NoSDcxRWdCO0VnSDgxRWhCLGN6Rm41RVM7RXlGbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQXZaUTtFQUNJLHdDaEgxd0dnQjtFZ0gyd0doQixjekZoMEdTO0V5RmkwR1Q7QUExN0ZaO0FBNDdGWTtFQUVJO0FBMzdGaEIsQzs7OztBaEgxWUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0ErRjhOSjs7QS9GM05BO0VBQ0k7QStGOE5KOztBN0ZwT0k7RUFESjtJQUVRO0U2RndPTjtBQUNGOztBN0ZyT0E7RUFDSTtFQUNBO0VBQ0E7QTZGd09KO0E3RnRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0U2RnlPTjtBQUNGOztBN0Z0T0E7RUFHWTtJQUNJO0lBQ0E7RTZGdU9kO0U3RnpPVTtJQUNJO0lBQ0E7RTZGMk9kO0U3RjdPVTtJQUNJO0lBQ0E7RTZGK09kO0U3RmpQVTtJQUNJO0lBQ0E7RTZGbVBkO0U3RnJQVTtJQUNJO0lBQ0E7RTZGdVBkO0U3RnpQVTtJQUNJO0lBQ0E7RTZGMlBkO0U3RjdQVTtJQUNJO0lBQ0E7RTZGK1BkO0U3RmpRVTtJQUNJO0lBQ0E7RTZGbVFkO0U3RnJRVTtJQUNJO0lBQ0E7RTZGdVFkO0U3RnpRVTtJQUNJO0lBQ0E7RTZGMlFkO0U3RjdRVTtJQUNJO0lBQ0E7RTZGK1FkO0U3RmpSVTtJQUNJO0lBQ0E7RTZGbVJkO0U3RjlRRTtJQUNJO0U2RmdSTjtBQUNGO0E3RjNRUTtFQURKO0lBRVE7RTZGOFFWO0FBQ0Y7O0E1Rm5UQTs7RUFBQTtBQ0FBOztFQUFBO0EyRjZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDakg3MUVnQjtFaUg4MUVoQixjMUZuNUVTO0UwRm81RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFoNEVJO0V2R2gxQ0E7RXVHazFDSTtFQUNBO0VBQ0E7RUFDQTtBQWo5QlI7QUFtOUJRO0VBQ0k7RUFDQTtFQUNBLGMxRnIxQ1c7QTBGb1l2QjtBQTY5Qkk7RUFDSTtFQUNBO0FBMzlCUjtBQXk5Qkk7RUFDSTtFQUNBO0FBdjlCUjtBQXE5Qkk7RUFDSTtFQUNBO0FBbjlCUjtBQXE3RlE7RUFHSTtFQUNBO0FBcjdGWjtBQXc3RlE7RUFLSTtFQUNBO0FBMTdGWjtBQTY3RlE7RUFRSTtFQUNBO0FBbDhGWjtBQXE4RlE7RUFDSTtFQUNBO0FBbjhGWjtBQXM4RlE7RUFLSTtFQUNBO0FBeDhGWjtBQTI4RlE7RUFDSTtFQUNBO0FBejhGWjtBQTQ4RlE7RXZHLzJHSjtBdUdzYUosQzs7OztBakhyYkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0FnRzhOSjs7QWhHM05BO0VBQ0k7QWdHOE5KOztBOUZwT0k7RUFESjtJQUVRO0U4RndPTjtBQUNGOztBOUZyT0E7RUFDSTtFQUNBO0VBQ0E7QThGd09KO0E5RnRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0U4RnlPTjtBQUNGOztBOUZ0T0E7RUFHWTtJQUNJO0lBQ0E7RThGdU9kO0U5RnpPVTtJQUNJO0lBQ0E7RThGMk9kO0U5RjdPVTtJQUNJO0lBQ0E7RThGK09kO0U5RmpQVTtJQUNJO0lBQ0E7RThGbVBkO0U5RnJQVTtJQUNJO0lBQ0E7RThGdVBkO0U5RnpQVTtJQUNJO0lBQ0E7RThGMlBkO0U5RjdQVTtJQUNJO0lBQ0E7RThGK1BkO0U5RmpRVTtJQUNJO0lBQ0E7RThGbVFkO0U5RnJRVTtJQUNJO0lBQ0E7RThGdVFkO0U5RnpRVTtJQUNJO0lBQ0E7RThGMlFkO0U5RjdRVTtJQUNJO0lBQ0E7RThGK1FkO0U5RmpSVTtJQUNJO0lBQ0E7RThGbVJkO0U5RjlRRTtJQUNJO0U4RmdSTjtBQUNGO0E5RjNRUTtFQURKO0lBRVE7RThGOFFWO0FBQ0Y7O0E3Rm5UQTs7RUFBQTtBQ0FBOztFQUFBO0E0RjZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDbEg3MUVnQjtFa0g4MUVoQixjM0ZuNUVTO0UyRm81RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFhUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsZ0IzRnJ1SFU7RTJGc3VIVjtVQUFBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUE5MUdaO0FBZzJHWTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxnQjNGbHZITTtFMkZtdkhOO0FBOTFHaEI7QXBHMVhJO0VvR2tzSEk7SUEyQlE7SUFDQTtJQUNBO0VBLzFHZDtFQWkyR2M7SUFDSTtFQS8xR2xCO0VBazJHYztJQUNJO0VBaDJHbEI7RUFtMkdjO0lBQ0k7RUFqMkdsQjtFQW8yR2M7SUFDSTtRQUFBO1lBQUE7SUFDQTtFQWwyR2xCO0VBbzJHa0I7SUFDSTtJQUFBO0lBQUE7SUFDQTtJQUFBO1FBQUE7WUFBQTtJQUNBO0VBbDJHdEI7QUFDRjtBcEc1WEk7RW9HMnFISTtJQXlEWTtJQUNBO0lBQ0E7SUFDQTtFQXAyR2xCO0FBQ0Y7QXBHM1pJO0VvR2tzSEk7SUFpRVE7RUFwMkdkO0FBQ0Y7QUF1MkdRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQSxrQjFENXlIWTtFMEQ2eUhaO0VBQ0E7QUFyMkdaO0FwR3phSTtFb0d1d0hJO0lBVVE7SUFDQTtJQUNBO0lBQ0E7SUFDQTtFQXAyR2Q7QUFDRjtBQXMyR1k7RUFDSTtBQXAyR2hCO0FBdzJHUTtFQUNJO0FBdDJHWjtBQXkyR1E7RUFDSTtFQUNBO0VBQ0E7QUF2MkdaO0FBeTJHWTtFQUNJO0VBQ0E7RUFDQTtBQXYyR2hCO0FBeTJHZ0I7RUFDSSxjM0Z6eUhNO0UyRjB5SE47QUF2MkdwQjtBQTQyR1E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsYzNGNzBIVztFMkY4MEhYO0VBQ0E7QUExMkdaO0FwR2hkSTtFb0drekhJO0lBV1E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtFQXoyR2Q7QUFDRjtBQTIyR1k7RUFDSSx5QjNGdDFITztFMkZ1MUhQO0FBejJHaEIsQzs7OztBbEg3ZkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0FpRzhOSjs7QWpHM05BO0VBQ0k7QWlHOE5KOztBL0ZwT0k7RUFESjtJQUVRO0UrRndPTjtBQUNGOztBL0ZyT0E7RUFDSTtFQUNBO0VBQ0E7QStGd09KO0EvRnRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0UrRnlPTjtBQUNGOztBL0Z0T0E7RUFHWTtJQUNJO0lBQ0E7RStGdU9kO0UvRnpPVTtJQUNJO0lBQ0E7RStGMk9kO0UvRjdPVTtJQUNJO0lBQ0E7RStGK09kO0UvRmpQVTtJQUNJO0lBQ0E7RStGbVBkO0UvRnJQVTtJQUNJO0lBQ0E7RStGdVBkO0UvRnpQVTtJQUNJO0lBQ0E7RStGMlBkO0UvRjdQVTtJQUNJO0lBQ0E7RStGK1BkO0UvRmpRVTtJQUNJO0lBQ0E7RStGbVFkO0UvRnJRVTtJQUNJO0lBQ0E7RStGdVFkO0UvRnpRVTtJQUNJO0lBQ0E7RStGMlFkO0UvRjdRVTtJQUNJO0lBQ0E7RStGK1FkO0UvRmpSVTtJQUNJO0lBQ0E7RStGbVJkO0UvRjlRRTtJQUNJO0UrRmdSTjtBQUNGO0EvRjNRUTtFQURKO0lBRVE7RStGOFFWO0FBQ0Y7O0E5Rm5UQTs7RUFBQTtBQ0FBOztFQUFBO0E2RjZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDbkg3MUVnQjtFbUg4MUVoQixjNUZuNUVTO0U0Rm81RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QXhEcHRISTtFQUNJO0F3RG1ZUjtBeERqWVE7RUFDSTtFQUNBO0VBQUE7RUFBQTtFQUNBO0VBQUE7TUFBQTtVQUFBO0VBQ0E7TUFBQTtVQUFBO0F3RG1ZWjtBeERoWVE7RWhES0osc0ZBRmlCO0VBRWpCLDhFQUZpQjtFZ0REVDtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0Esc0JwQ2JVO0VvQ2NWO0VBQ0E7RUFDQSxrQkhyQlk7RUdzQlo7TUFBQTtVQUFBO0F3RGtZWjtBckd4WEk7RTZDckJJO0lBY1E7SUFDQTtJQUNBO0lBQ0E7RXdEbVlkO0FBQ0Y7QXhEallZO0VBQ0k7RUFDQTtFQUNBO0F3RG1ZaEI7QXJHcllJO0U2Q0RRO0lBTVE7SUFDQTtJQUNBO0V3RG9ZbEI7QUFDRjtBeERqWVk7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFVDaERLO0F1RG1ickI7QXJHblpJO0U2Q1dRO0lBUVE7SUFDQTtFd0RvWWxCO0FBQ0Y7QXhEallZO0VBQ0k7QXdEbVloQjtBeERoWVk7RUFDSTtBd0RrWWhCO0F4RC9YWTtFQUNJO0F3RGlZaEI7QXhEN1hRO0UvQ3RESjtFQUNBO0VBQ0E7RStDc0RRO0F3RGlZWjtBeEQ5WGdCO0VBQ0kseUJwQzNFQztFb0M0RUQscUJwQzVFQztBNEY0Y3JCO0F4RDlYb0I7RS9DMUVoQjtFQUNBO0VBQ0E7QXVHMmNKO0F4RC9Yb0I7RUFDSSx5QnBDbkRBO0VvQ29EQSxxQnBDcERBO0E0RnFieEI7QXhEOVhvQjtFQUNJLHNCcENuRkY7RW9Db0ZFLHFCcEM5RUQ7QTRGOGN2QjtBeEQ1WGdCO0VBQ0k7QXdEOFhwQjtBeEQ1WG9CO0VBQ0k7QXdEOFh4QjtBeER2WGdCO0VBRUksc0JwQ3JHRTtFb0NzR0YscUJwQ2xHRztFb0NtR0g7QXdEd1hwQjtBeERyWGdCO0VBQ0kseUJwQ3ZHRztBNEY4ZHZCO0F4RHBYZ0I7RUFDSSxjcEN6R0c7RW9DMEdIO0F3RHNYcEI7QXhEalhRO0UvQzNHSjtFQUNBO0VBQ0E7RUREQSwyRUFGaUI7RUFFakIsbUVBRmlCO0VnRCtHVCxXcEN4SFU7RW9DeUhWO0F3RHFYWjtBeERuWFk7RUFDSSxjcEN0SE87RW9DdUhQO0F3RHFYaEI7QXhEalhRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7S0FBQTtNQUFBO1VBQUE7RUFDQTtNQUFBO1VBQUE7QXdEbVhaO0F4RGpYWTtFQUNJO01BQUE7VUFBQTtFQUNBO0VBQUE7RUFBQTtFQUNBO01BQUE7VUFBQTtFQUNBO01BQUE7VUFBQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0F3RG1YaEI7QXhEaFhZO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQSxjcENySk87RW9Dc0pQO0F3RGtYaEI7QXhEL1dZO0VBQ0k7RUFDQSxjcEN0SVE7QTRGdWZ4QjtBeEQ3V1E7RUFDSTtBd0QrV1o7QXhENVdRO0VBQ0k7QXdEOFdaO0F4RDNXUTtFQUNJO0VBQ0E7RUFDQTtBd0Q2V1o7QXJHbGdCSTtFNkNrSkk7SUFNUTtFd0Q4V2Q7QUFDRjtBeEQzV1E7RUFDSTtBd0Q2V1o7QXhEMVdnQjtFQUNJLHFCcEN0TEc7QTRGa2lCdkI7QXJHN2dCSTtFNkNzS0k7SUFFUTtFd0R5V2Q7QUFDRjtBeER0V2dCO0VBQ0kscUJwQ2xNRztBNEYwaUJ2QjtBeERuV1E7RUFDSSxxQnBDbE5RO0E0RnVqQnBCO0F4RGpXWTtFQUNJLHFCcEN4Tks7QTRGMmpCckI7QXhEaldnQjtFQUNJLHFCcEMzTEk7QTRGOGhCeEI7QXhEL1ZZOztFQUVJLHFCcEN4Tk87QTRGeWpCdkI7O0F4RGprQkk7RUFDSTtBd0Rva0JSO0F4RGxrQlE7RUFDSTtFQUNBO0VBQUE7RUFBQTtFQUNBO0VBQUE7TUFBQTtVQUFBO0VBQ0E7TUFBQTtVQUFBO0F3RG9rQlo7QXhEamtCUTtFaERLSixzRkFGaUI7RUFFakIsOEVBRmlCO0VnRERUO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxzQnBDYlU7RW9DY1Y7RUFDQTtFQUNBLGtCSHJCWTtFR3NCWjtNQUFBO1VBQUE7QXdEbWtCWjtBckd6akJJO0U2Q3JCSTtJQWNRO0lBQ0E7SUFDQTtJQUNBO0V3RG9rQmQ7QUFDRjtBeERsa0JZO0VBQ0k7RUFDQTtFQUNBO0F3RG9rQmhCO0FyR3RrQkk7RTZDRFE7SUFNUTtJQUNBO0lBQ0E7RXdEcWtCbEI7QUFDRjtBeERsa0JZO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQSxVQ2hESztBdURvbkJyQjtBckdwbEJJO0U2Q1dRO0lBUVE7SUFDQTtFd0Rxa0JsQjtBQUNGO0F4RGxrQlk7RUFDSTtBd0Rva0JoQjtBeERqa0JZO0VBQ0k7QXdEbWtCaEI7QXhEaGtCWTtFQUNJO0F3RGtrQmhCO0F4RDlqQlE7RS9DdERKO0VBQ0E7RUFDQTtFK0NzRFE7QXdEa2tCWjtBeEQvakJnQjtFQUNJLHlCcEMzRUM7RW9DNEVELHFCcEM1RUM7QTRGNm9CckI7QXhEL2pCb0I7RS9DMUVoQjtFQUNBO0VBQ0E7QXVHNG9CSjtBeERoa0JvQjtFQUNJLHlCcENuREE7RW9Db0RBLHFCcENwREE7QTRGc25CeEI7QXhEL2pCb0I7RUFDSSxzQnBDbkZGO0VvQ29GRSxxQnBDOUVEO0E0RitvQnZCO0F4RDdqQmdCO0VBQ0k7QXdEK2pCcEI7QXhEN2pCb0I7RUFDSTtBd0QrakJ4QjtBeER4akJnQjtFQUVJLHNCcENyR0U7RW9Dc0dGLHFCcENsR0c7RW9DbUdIO0F3RHlqQnBCO0F4RHRqQmdCO0VBQ0kseUJwQ3ZHRztBNEYrcEJ2QjtBeERyakJnQjtFQUNJLGNwQ3pHRztFb0MwR0g7QXdEdWpCcEI7QXhEbGpCUTtFL0MzR0o7RUFDQTtFQUNBO0VEREEsMkVBRmlCO0VBRWpCLG1FQUZpQjtFZ0QrR1QsV3BDeEhVO0VvQ3lIVjtBd0RzakJaO0F4RHBqQlk7RUFDSSxjcEN0SE87RW9DdUhQO0F3RHNqQmhCO0F4RGxqQlE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtLQUFBO01BQUE7VUFBQTtFQUNBO01BQUE7VUFBQTtBd0RvakJaO0F4RGxqQlk7RUFDSTtNQUFBO1VBQUE7RUFDQTtFQUFBO0VBQUE7RUFDQTtNQUFBO1VBQUE7RUFDQTtNQUFBO1VBQUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBd0RvakJoQjtBeERqakJZO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQSxjcENySk87RW9Dc0pQO0F3RG1qQmhCO0F4RGhqQlk7RUFDSTtFQUNBLGNwQ3RJUTtBNEZ3ckJ4QjtBeEQ5aUJRO0VBQ0k7QXdEZ2pCWjtBeEQ3aUJRO0VBQ0k7QXdEK2lCWjtBeEQ1aUJRO0VBQ0k7RUFDQTtFQUNBO0F3RDhpQlo7QXJHbnNCSTtFNkNrSkk7SUFNUTtFd0QraUJkO0FBQ0Y7QXhENWlCUTtFQUNJO0F3RDhpQlo7QXhEM2lCZ0I7RUFDSSxxQnBDdExHO0E0Rm11QnZCO0FyRzlzQkk7RTZDc0tJO0lBRVE7RXdEMGlCZDtBQUNGO0F4RHZpQmdCO0VBQ0kscUJwQ2xNRztBNEYydUJ2QjtBeERwaUJRO0VBQ0kscUJwQ2xOUTtBNEZ3dkJwQjtBeERsaUJZO0VBQ0kscUJwQ3hOSztBNEY0dkJyQjtBeERsaUJnQjtFQUNJLHFCcEMzTEk7QTRGK3RCeEI7QXhEaGlCWTs7RUFFSSxxQnBDeE5PO0E0RjB2QnZCO0FBaytGUTtFQUNJO0FBaCtGWixDOzs7O0FuSHR3QkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0FrRzhOSjs7QWxHM05BO0VBQ0k7QWtHOE5KOztBaEdwT0k7RUFESjtJQUVRO0VnR3dPTjtBQUNGOztBaEdyT0E7RUFDSTtFQUNBO0VBQ0E7QWdHd09KO0FoR3RPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0VnR3lPTjtBQUNGOztBaEd0T0E7RUFHWTtJQUNJO0lBQ0E7RWdHdU9kO0VoR3pPVTtJQUNJO0lBQ0E7RWdHMk9kO0VoRzdPVTtJQUNJO0lBQ0E7RWdHK09kO0VoR2pQVTtJQUNJO0lBQ0E7RWdHbVBkO0VoR3JQVTtJQUNJO0lBQ0E7RWdHdVBkO0VoR3pQVTtJQUNJO0lBQ0E7RWdHMlBkO0VoRzdQVTtJQUNJO0lBQ0E7RWdHK1BkO0VoR2pRVTtJQUNJO0lBQ0E7RWdHbVFkO0VoR3JRVTtJQUNJO0lBQ0E7RWdHdVFkO0VoR3pRVTtJQUNJO0lBQ0E7RWdHMlFkO0VoRzdRVTtJQUNJO0lBQ0E7RWdHK1FkO0VoR2pSVTtJQUNJO0lBQ0E7RWdHbVJkO0VoRzlRRTtJQUNJO0VnR2dSTjtBQUNGO0FoRzNRUTtFQURKO0lBRVE7RWdHOFFWO0FBQ0Y7O0EvRm5UQTs7RUFBQTtBQ0FBOztFQUFBO0E4RjZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDcEg3MUVnQjtFb0g4MUVoQixjN0ZuNUVTO0U2Rm81RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QXpEcHRISTtFQUNJO0F5RG1ZUjtBekRqWVE7RUFDSTtFQUNBO0VBQUE7RUFBQTtFQUNBO0VBQUE7TUFBQTtVQUFBO0VBQ0E7TUFBQTtVQUFBO0F5RG1ZWjtBekRoWVE7RWhES0osc0ZBRmlCO0VBRWpCLDhFQUZpQjtFZ0REVDtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0Esc0JwQ2JVO0VvQ2NWO0VBQ0E7RUFDQSxrQkhyQlk7RUdzQlo7TUFBQTtVQUFBO0F5RGtZWjtBdEd4WEk7RTZDckJJO0lBY1E7SUFDQTtJQUNBO0lBQ0E7RXlEbVlkO0FBQ0Y7QXpEallZO0VBQ0k7RUFDQTtFQUNBO0F5RG1ZaEI7QXRHcllJO0U2Q0RRO0lBTVE7SUFDQTtJQUNBO0V5RG9ZbEI7QUFDRjtBekRqWVk7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFVDaERLO0F3RG1ickI7QXRHblpJO0U2Q1dRO0lBUVE7SUFDQTtFeURvWWxCO0FBQ0Y7QXpEallZO0VBQ0k7QXlEbVloQjtBekRoWVk7RUFDSTtBeURrWWhCO0F6RC9YWTtFQUNJO0F5RGlZaEI7QXpEN1hRO0UvQ3RESjtFQUNBO0VBQ0E7RStDc0RRO0F5RGlZWjtBekQ5WGdCO0VBQ0kseUJwQzNFQztFb0M0RUQscUJwQzVFQztBNkY0Y3JCO0F6RDlYb0I7RS9DMUVoQjtFQUNBO0VBQ0E7QXdHMmNKO0F6RC9Yb0I7RUFDSSx5QnBDbkRBO0VvQ29EQSxxQnBDcERBO0E2RnFieEI7QXpEOVhvQjtFQUNJLHNCcENuRkY7RW9Db0ZFLHFCcEM5RUQ7QTZGOGN2QjtBekQ1WGdCO0VBQ0k7QXlEOFhwQjtBekQ1WG9CO0VBQ0k7QXlEOFh4QjtBekR2WGdCO0VBRUksc0JwQ3JHRTtFb0NzR0YscUJwQ2xHRztFb0NtR0g7QXlEd1hwQjtBekRyWGdCO0VBQ0kseUJwQ3ZHRztBNkY4ZHZCO0F6RHBYZ0I7RUFDSSxjcEN6R0c7RW9DMEdIO0F5RHNYcEI7QXpEalhRO0UvQzNHSjtFQUNBO0VBQ0E7RUREQSwyRUFGaUI7RUFFakIsbUVBRmlCO0VnRCtHVCxXcEN4SFU7RW9DeUhWO0F5RHFYWjtBekRuWFk7RUFDSSxjcEN0SE87RW9DdUhQO0F5RHFYaEI7QXpEalhRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7S0FBQTtNQUFBO1VBQUE7RUFDQTtNQUFBO1VBQUE7QXlEbVhaO0F6RGpYWTtFQUNJO01BQUE7VUFBQTtFQUNBO0VBQUE7RUFBQTtFQUNBO01BQUE7VUFBQTtFQUNBO01BQUE7VUFBQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0F5RG1YaEI7QXpEaFhZO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQSxjcENySk87RW9Dc0pQO0F5RGtYaEI7QXpEL1dZO0VBQ0k7RUFDQSxjcEN0SVE7QTZGdWZ4QjtBekQ3V1E7RUFDSTtBeUQrV1o7QXpENVdRO0VBQ0k7QXlEOFdaO0F6RDNXUTtFQUNJO0VBQ0E7RUFDQTtBeUQ2V1o7QXRHbGdCSTtFNkNrSkk7SUFNUTtFeUQ4V2Q7QUFDRjtBekQzV1E7RUFDSTtBeUQ2V1o7QXpEMVdnQjtFQUNJLHFCcEN0TEc7QTZGa2lCdkI7QXRHN2dCSTtFNkNzS0k7SUFFUTtFeUR5V2Q7QUFDRjtBekR0V2dCO0VBQ0kscUJwQ2xNRztBNkYwaUJ2QjtBekRuV1E7RUFDSSxxQnBDbE5RO0E2RnVqQnBCO0F6RGpXWTtFQUNJLHFCcEN4Tks7QTZGMmpCckI7QXpEaldnQjtFQUNJLHFCcEMzTEk7QTZGOGhCeEI7QXpEL1ZZOztFQUVJLHFCcEN4Tk87QTZGeWpCdkI7O0F6RGprQkk7RUFDSTtBeURva0JSO0F6RGxrQlE7RUFDSTtFQUNBO0VBQUE7RUFBQTtFQUNBO0VBQUE7TUFBQTtVQUFBO0VBQ0E7TUFBQTtVQUFBO0F5RG9rQlo7QXpEamtCUTtFaERLSixzRkFGaUI7RUFFakIsOEVBRmlCO0VnRERUO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxzQnBDYlU7RW9DY1Y7RUFDQTtFQUNBLGtCSHJCWTtFR3NCWjtNQUFBO1VBQUE7QXlEbWtCWjtBdEd6akJJO0U2Q3JCSTtJQWNRO0lBQ0E7SUFDQTtJQUNBO0V5RG9rQmQ7QUFDRjtBekRsa0JZO0VBQ0k7RUFDQTtFQUNBO0F5RG9rQmhCO0F0R3RrQkk7RTZDRFE7SUFNUTtJQUNBO0lBQ0E7RXlEcWtCbEI7QUFDRjtBekRsa0JZO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQSxVQ2hESztBd0RvbkJyQjtBdEdwbEJJO0U2Q1dRO0lBUVE7SUFDQTtFeURxa0JsQjtBQUNGO0F6RGxrQlk7RUFDSTtBeURva0JoQjtBekRqa0JZO0VBQ0k7QXlEbWtCaEI7QXpEaGtCWTtFQUNJO0F5RGtrQmhCO0F6RDlqQlE7RS9DdERKO0VBQ0E7RUFDQTtFK0NzRFE7QXlEa2tCWjtBekQvakJnQjtFQUNJLHlCcEMzRUM7RW9DNEVELHFCcEM1RUM7QTZGNm9CckI7QXpEL2pCb0I7RS9DMUVoQjtFQUNBO0VBQ0E7QXdHNG9CSjtBekRoa0JvQjtFQUNJLHlCcENuREE7RW9Db0RBLHFCcENwREE7QTZGc25CeEI7QXpEL2pCb0I7RUFDSSxzQnBDbkZGO0VvQ29GRSxxQnBDOUVEO0E2RitvQnZCO0F6RDdqQmdCO0VBQ0k7QXlEK2pCcEI7QXpEN2pCb0I7RUFDSTtBeUQrakJ4QjtBekR4akJnQjtFQUVJLHNCcENyR0U7RW9Dc0dGLHFCcENsR0c7RW9DbUdIO0F5RHlqQnBCO0F6RHRqQmdCO0VBQ0kseUJwQ3ZHRztBNkYrcEJ2QjtBekRyakJnQjtFQUNJLGNwQ3pHRztFb0MwR0g7QXlEdWpCcEI7QXpEbGpCUTtFL0MzR0o7RUFDQTtFQUNBO0VEREEsMkVBRmlCO0VBRWpCLG1FQUZpQjtFZ0QrR1QsV3BDeEhVO0VvQ3lIVjtBeURzakJaO0F6RHBqQlk7RUFDSSxjcEN0SE87RW9DdUhQO0F5RHNqQmhCO0F6RGxqQlE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtLQUFBO01BQUE7VUFBQTtFQUNBO01BQUE7VUFBQTtBeURvakJaO0F6RGxqQlk7RUFDSTtNQUFBO1VBQUE7RUFDQTtFQUFBO0VBQUE7RUFDQTtNQUFBO1VBQUE7RUFDQTtNQUFBO1VBQUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBeURvakJoQjtBekRqakJZO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQSxjcENySk87RW9Dc0pQO0F5RG1qQmhCO0F6RGhqQlk7RUFDSTtFQUNBLGNwQ3RJUTtBNkZ3ckJ4QjtBekQ5aUJRO0VBQ0k7QXlEZ2pCWjtBekQ3aUJRO0VBQ0k7QXlEK2lCWjtBekQ1aUJRO0VBQ0k7RUFDQTtFQUNBO0F5RDhpQlo7QXRHbnNCSTtFNkNrSkk7SUFNUTtFeUQraUJkO0FBQ0Y7QXpENWlCUTtFQUNJO0F5RDhpQlo7QXpEM2lCZ0I7RUFDSSxxQnBDdExHO0E2Rm11QnZCO0F0RzlzQkk7RTZDc0tJO0lBRVE7RXlEMGlCZDtBQUNGO0F6RHZpQmdCO0VBQ0kscUJwQ2xNRztBNkYydUJ2QjtBekRwaUJRO0VBQ0kscUJwQ2xOUTtBNkZ3dkJwQjtBekRsaUJZO0VBQ0kscUJwQ3hOSztBNkY0dkJyQjtBekRsaUJnQjtFQUNJLHFCcEMzTEk7QTZGK3RCeEI7QXpEaGlCWTs7RUFFSSxxQnBDeE5PO0E2RjB2QnZCO0FsRDd2Qlk7RUFDSTtFQUNBO0VBQ0E7QWtEK3ZCaEI7QWxEM3ZCUTtFdkRHSixrREFGaUI7RUFFakIsMENBRmlCO0V1RENUO0VBQ0E7QWtENnZCWjtBbEQxdkJRO0VBQ0k7QWtENHZCWjtBbER2dkJZO0VBQ0kseUIzQzFCSztFMkMyQkwscUIzQzNCSztFMkM0Qkw7VUFBQTtBa0R5dkJoQjs7QXpEcHhCSTtFQUNJO0F5RHV4QlI7QXpEcnhCUTtFQUNJO0VBQ0E7RUFBQTtFQUFBO0VBQ0E7RUFBQTtNQUFBO1VBQUE7RUFDQTtNQUFBO1VBQUE7QXlEdXhCWjtBekRweEJRO0VoREtKLHNGQUZpQjtFQUVqQiw4RUFGaUI7RWdERFQ7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLHNCcENiVTtFb0NjVjtFQUNBO0VBQ0Esa0JIckJZO0VHc0JaO01BQUE7VUFBQTtBeURzeEJaO0F0RzV3Qkk7RTZDckJJO0lBY1E7SUFDQTtJQUNBO0lBQ0E7RXlEdXhCZDtBQUNGO0F6RHJ4Qlk7RUFDSTtFQUNBO0VBQ0E7QXlEdXhCaEI7QXRHenhCSTtFNkNEUTtJQU1RO0lBQ0E7SUFDQTtFeUR3eEJsQjtBQUNGO0F6RHJ4Qlk7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFVDaERLO0F3RHUwQnJCO0F0R3Z5Qkk7RTZDV1E7SUFRUTtJQUNBO0V5RHd4QmxCO0FBQ0Y7QXpEcnhCWTtFQUNJO0F5RHV4QmhCO0F6RHB4Qlk7RUFDSTtBeURzeEJoQjtBekRueEJZO0VBQ0k7QXlEcXhCaEI7QXpEanhCUTtFL0N0REo7RUFDQTtFQUNBO0UrQ3NEUTtBeURxeEJaO0F6RGx4QmdCO0VBQ0kseUJwQzNFQztFb0M0RUQscUJwQzVFQztBNkZnMkJyQjtBekRseEJvQjtFL0MxRWhCO0VBQ0E7RUFDQTtBd0crMUJKO0F6RG54Qm9CO0VBQ0kseUJwQ25EQTtFb0NvREEscUJwQ3BEQTtBNkZ5MEJ4QjtBekRseEJvQjtFQUNJLHNCcENuRkY7RW9Db0ZFLHFCcEM5RUQ7QTZGazJCdkI7QXpEaHhCZ0I7RUFDSTtBeURreEJwQjtBekRoeEJvQjtFQUNJO0F5RGt4QnhCO0F6RDN3QmdCO0VBRUksc0JwQ3JHRTtFb0NzR0YscUJwQ2xHRztFb0NtR0g7QXlENHdCcEI7QXpEendCZ0I7RUFDSSx5QnBDdkdHO0E2RmszQnZCO0F6RHh3QmdCO0VBQ0ksY3BDekdHO0VvQzBHSDtBeUQwd0JwQjtBekRyd0JRO0UvQzNHSjtFQUNBO0VBQ0E7RUREQSwyRUFGaUI7RUFFakIsbUVBRmlCO0VnRCtHVCxXcEN4SFU7RW9DeUhWO0F5RHl3Qlo7QXpEdndCWTtFQUNJLGNwQ3RITztFb0N1SFA7QXlEeXdCaEI7QXpEcndCUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0tBQUE7TUFBQTtVQUFBO0VBQ0E7TUFBQTtVQUFBO0F5RHV3Qlo7QXpEcndCWTtFQUNJO01BQUE7VUFBQTtFQUNBO0VBQUE7RUFBQTtFQUNBO01BQUE7VUFBQTtFQUNBO01BQUE7VUFBQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0F5RHV3QmhCO0F6RHB3Qlk7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBLGNwQ3JKTztFb0NzSlA7QXlEc3dCaEI7QXpEbndCWTtFQUNJO0VBQ0EsY3BDdElRO0E2RjI0QnhCO0F6RGp3QlE7RUFDSTtBeURtd0JaO0F6RGh3QlE7RUFDSTtBeURrd0JaO0F6RC92QlE7RUFDSTtFQUNBO0VBQ0E7QXlEaXdCWjtBdEd0NUJJO0U2Q2tKSTtJQU1RO0V5RGt3QmQ7QUFDRjtBekQvdkJRO0VBQ0k7QXlEaXdCWjtBekQ5dkJnQjtFQUNJLHFCcEN0TEc7QTZGczdCdkI7QXRHajZCSTtFNkNzS0k7SUFFUTtFeUQ2dkJkO0FBQ0Y7QXpEMXZCZ0I7RUFDSSxxQnBDbE1HO0E2Rjg3QnZCO0F6RHZ2QlE7RUFDSSxxQnBDbE5RO0E2RjI4QnBCO0F6RHJ2Qlk7RUFDSSxxQnBDeE5LO0E2Ris4QnJCO0F6RHJ2QmdCO0VBQ0kscUJwQzNMSTtBNkZrN0J4QjtBekRudkJZOztFQUVJLHFCcEN4Tk87QTZGNjhCdkI7QWxEaDlCWTtFQUNJO0VBQ0E7RUFDQTtBa0RrOUJoQjtBbEQ5OEJRO0V2REdKLGtEQUZpQjtFQUVqQiwwQ0FGaUI7RXVEQ1Q7RUFDQTtBa0RnOUJaO0FsRDc4QlE7RUFDSTtBa0QrOEJaO0FsRDE4Qlk7RUFDSSx5QjNDMUJLO0UyQzJCTCxxQjNDM0JLO0UyQzRCTDtVQUFBO0FrRDQ4QmhCO0FBNnZGUTtFQUNJLGM3RjN0SFc7QTZGZytCdkI7QUFnd0ZZO0VBQ0ksc0I3RnZ1SE07RTZGd3VITjtVQUFBO0FBOXZGaEI7QUFpd0ZZO0VBQ0ksYzdGdHVITztFNkZ1dUhQO0FBL3ZGaEIsQzs7OztBcEhuL0JBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBbUc4Tko7O0FuRzNOQTtFQUNJO0FtRzhOSjs7QWpHcE9JO0VBREo7SUFFUTtFaUd3T047QUFDRjs7QWpHck9BO0VBQ0k7RUFDQTtFQUNBO0FpR3dPSjtBakd0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFaUd5T047QUFDRjs7QWpHdE9BO0VBR1k7SUFDSTtJQUNBO0VpR3VPZDtFakd6T1U7SUFDSTtJQUNBO0VpRzJPZDtFakc3T1U7SUFDSTtJQUNBO0VpRytPZDtFakdqUFU7SUFDSTtJQUNBO0VpR21QZDtFakdyUFU7SUFDSTtJQUNBO0VpR3VQZDtFakd6UFU7SUFDSTtJQUNBO0VpRzJQZDtFakc3UFU7SUFDSTtJQUNBO0VpRytQZDtFakdqUVU7SUFDSTtJQUNBO0VpR21RZDtFakdyUVU7SUFDSTtJQUNBO0VpR3VRZDtFakd6UVU7SUFDSTtJQUNBO0VpRzJRZDtFakc3UVU7SUFDSTtJQUNBO0VpRytRZDtFakdqUlU7SUFDSTtJQUNBO0VpR21SZDtFakc5UUU7SUFDSTtFaUdnUk47QUFDRjtBakczUVE7RUFESjtJQUVRO0VpRzhRVjtBQUNGOztBaEduVEE7O0VBQUE7QUNBQTs7RUFBQTtBK0Y2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Q3JINzFFZ0I7RXFIODFFaEIsYzlGbjVFUztFOEZvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBdFJJO0V6R2g3R0E7RUFDQTtFQUNBO0VEREEsMkVBRmlCO0VBRWpCLG1FQUZpQjtFMEdvN0diO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7VUFBQTtBQXpqR1I7QUEyakdRO0UzR244R0o7RU1ZQTtVQUFBO0VxRzA3R1E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLHNCOUYzOEdVO0U4RjQ4R1Y7RUFDQTtFQUNBO0FBempHWjtBQTRqR1E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtVQUFBO0VBQ0EsVXpEOTlHUztBeURvYXJCO0FBc2tHSTtFQUNJO0VBQ0EscUI5Rjk2R2dCO0U4Ris2R2hCLGM5Ri82R2dCO0E4RjJXeEI7QUF1a0dJO0VBQ0ksMkI5Rm43R2dCO0U4Rm83R2hCLDRCOUZwN0dnQjtBOEYrV3hCO0FBNmpHSTtFQUNJO0VBQ0EscUI5Rjk2R2dCO0U4Ris2R2hCLGM5Ri82R2dCO0E4Rm9YeEI7QUE4akdJO0VBQ0ksMkI5Rm43R2dCO0U4Rm83R2hCLDRCOUZwN0dnQjtBOEZ3WHhCO0FBb2pHSTtFQUNJO0VBQ0EscUI5Rjk2R2dCO0U4Ris2R2hCLGM5Ri82R2dCO0E4RjZYeEI7QUFxakdJO0VBQ0ksMkI5Rm43R2dCO0U4Rm83R2hCLDRCOUZwN0dnQjtBOEZpWXhCLEM7Ozs7QXJIL2JBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBb0c4Tko7O0FwRzNOQTtFQUNJO0FvRzhOSjs7QWxHcE9JO0VBREo7SUFFUTtFa0d3T047QUFDRjs7QWxHck9BO0VBQ0k7RUFDQTtFQUNBO0FrR3dPSjtBbEd0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFa0d5T047QUFDRjs7QWxHdE9BO0VBR1k7SUFDSTtJQUNBO0VrR3VPZDtFbEd6T1U7SUFDSTtJQUNBO0VrRzJPZDtFbEc3T1U7SUFDSTtJQUNBO0VrRytPZDtFbEdqUFU7SUFDSTtJQUNBO0VrR21QZDtFbEdyUFU7SUFDSTtJQUNBO0VrR3VQZDtFbEd6UFU7SUFDSTtJQUNBO0VrRzJQZDtFbEc3UFU7SUFDSTtJQUNBO0VrRytQZDtFbEdqUVU7SUFDSTtJQUNBO0VrR21RZDtFbEdyUVU7SUFDSTtJQUNBO0VrR3VRZDtFbEd6UVU7SUFDSTtJQUNBO0VrRzJRZDtFbEc3UVU7SUFDSTtJQUNBO0VrRytRZDtFbEdqUlU7SUFDSTtJQUNBO0VrR21SZDtFbEc5UUU7SUFDSTtFa0dnUk47QUFDRjtBbEczUVE7RUFESjtJQUVRO0VrRzhRVjtBQUNGOztBakduVEE7O0VBQUE7QUNBQTs7RUFBQTtBZ0c2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Q3RINzFFZ0I7RXNIODFFaEIsYy9GbjVFUztFK0ZvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBV0E7RUFDSTtFQUFBO0VBQUE7RUFDQTtFQUFBO01BQUE7VUFBQTtFQUNBO0FBNTFHSjtBQTgxR0k7RUFDSSxtQi9GcHRIZ0I7RStGcXRIaEI7TUFBQTtVQUFBO0FBNTFHUjtBQTgxR1E7RUFKSjtJQUtRO0VBMzFHVjtBQUNGO0FBODFHUTtFQUNJO0FBNTFHWjs7QUFrMkdJO0VBQ0k7RUFDQTtBQS8xR1I7QXhHeFhJO0V3R3F0SEE7SUFLUTtFQTkxR1Y7QUFDRjtBQWkyR0k7RUFDSTtBQS8xR1I7QXhHaFlJO0V3Rzh0SEE7SUFJUTtFQTkxR1Y7QUFDRjtBeEdyWUk7RXdHc3VIQTtJQUVRO0VBLzFHVjtBQUNGO0FBazJHSTtFQUNJO0FBaDJHUjtBeEc3WUk7RXdHNHVIQTtJQUlRO0VBLzFHVjtBQUNGO0FBazJHSTtFQUNJO0VBQ0E7QUFoMkdSO0F4R3RaSTtFd0dvdkhBO0lBS1E7SUFDQTtFQS8xR1Y7QUFDRjtBeEc1Wkk7RXdHb3ZIQTtJQVVRO0VBOTFHVjtBQUNGO0FBaTJHSTtFQUNJO0VBQ0E7QUEvMUdSO0F4R3JhSTtFd0drd0hBO0lBS1E7RUE5MUdWO0FBQ0Y7QXhHMWFJO0V3R2t3SEE7SUFTUTtFQTcxR1Y7QUFDRjtBQWcyR0k7RUFDSTtFQUNBO0FBOTFHUjtBQWkyR0k7RUFDSTtFQUNBO0FBLzFHUjtBeEd2Ykk7RXdHb3hIQTtJQUtRO0VBOTFHVjtBQUNGO0FBaTJHSTtFQUNJO0VBQ0E7QUEvMUdSO0FBcTJHSTtFQUNJLCtCL0ZoeUhnQjtFK0ZpeUhoQjtFQUNBO0VBQ0E7RUFDQTtBQW4yR1I7QXhHdmNJO0V3R3F5SEE7SUFRUTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0VBbDJHVjtBQUNGOztBQXMyR0E7RUFDSSxtQi9GcjBIb0I7QStGa2V4QjtBQXEyR0k7RUFISjtJQUlRO0VBbDJHTjtBQUNGLEM7Ozs7QXRIemZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBcUc4Tko7O0FyRzNOQTtFQUNJO0FxRzhOSjs7QW5HcE9JO0VBREo7SUFFUTtFbUd3T047QUFDRjs7QW5Hck9BO0VBQ0k7RUFDQTtFQUNBO0FtR3dPSjtBbkd0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFbUd5T047QUFDRjs7QW5HdE9BO0VBR1k7SUFDSTtJQUNBO0VtR3VPZDtFbkd6T1U7SUFDSTtJQUNBO0VtRzJPZDtFbkc3T1U7SUFDSTtJQUNBO0VtRytPZDtFbkdqUFU7SUFDSTtJQUNBO0VtR21QZDtFbkdyUFU7SUFDSTtJQUNBO0VtR3VQZDtFbkd6UFU7SUFDSTtJQUNBO0VtRzJQZDtFbkc3UFU7SUFDSTtJQUNBO0VtRytQZDtFbkdqUVU7SUFDSTtJQUNBO0VtR21RZDtFbkdyUVU7SUFDSTtJQUNBO0VtR3VRZDtFbkd6UVU7SUFDSTtJQUNBO0VtRzJRZDtFbkc3UVU7SUFDSTtJQUNBO0VtRytRZDtFbkdqUlU7SUFDSTtJQUNBO0VtR21SZDtFbkc5UUU7SUFDSTtFbUdnUk47QUFDRjtBbkczUVE7RUFESjtJQUVRO0VtRzhRVjtBQUNGOztBbEduVEE7O0VBQUE7QUNBQTs7RUFBQTtBaUc2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Q3ZINzFFZ0I7RXVIODFFaEIsY2hHbjVFUztFZ0dvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBV0E7RUFDSTtFQUNBLGtCL0RsdUhvQjtFK0RtdUhwQixjaEd4dEhtQjtFZ0d5dEhuQjtFQUFBO0VBQUE7RUFDQTtNQUFBO1VBQUE7QUE1MUdKLEM7Ozs7QXZIellBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBc0c4Tko7O0F0RzNOQTtFQUNJO0FzRzhOSjs7QXBHcE9JO0VBREo7SUFFUTtFb0d3T047QUFDRjs7QXBHck9BO0VBQ0k7RUFDQTtFQUNBO0FvR3dPSjtBcEd0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFb0d5T047QUFDRjs7QXBHdE9BO0VBR1k7SUFDSTtJQUNBO0VvR3VPZDtFcEd6T1U7SUFDSTtJQUNBO0VvRzJPZDtFcEc3T1U7SUFDSTtJQUNBO0VvRytPZDtFcEdqUFU7SUFDSTtJQUNBO0VvR21QZDtFcEdyUFU7SUFDSTtJQUNBO0VvR3VQZDtFcEd6UFU7SUFDSTtJQUNBO0VvRzJQZDtFcEc3UFU7SUFDSTtJQUNBO0VvRytQZDtFcEdqUVU7SUFDSTtJQUNBO0VvR21RZDtFcEdyUVU7SUFDSTtJQUNBO0VvR3VRZDtFcEd6UVU7SUFDSTtJQUNBO0VvRzJRZDtFcEc3UVU7SUFDSTtJQUNBO0VvRytRZDtFcEdqUlU7SUFDSTtJQUNBO0VvR21SZDtFcEc5UUU7SUFDSTtFb0dnUk47QUFDRjtBcEczUVE7RUFESjtJQUVRO0VvRzhRVjtBQUNGOztBbkduVEE7O0VBQUE7QUNBQTs7RUFBQTtBa0c2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Q3hINzFFZ0I7RXdIODFFaEIsY2pHbjVFUztFaUdvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBYUk7RUFDSTtBQTkxR1I7QUFpMkdJO0VBQ0k7RUFDQTtFQUNBO0VBQ0EsY2pHL3RIZTtFaUdndUhmO0FBLzFHUjtBQWsyR0k7RUFDSSxjakdydUhlO0FpR3FZdkI7QUFrMkdRO0VBRUksY2pHbnZIUztBaUdrWnJCO0FBcTJHSTtFQUNJO0FBbjJHUjtBQXMyR0k7RUFDSTtBQXAyR1I7QUFzMkdRO0VBQ0k7QUFwMkdaO0FBdzJHSTtFQUNJO0FBdDJHUjtBQXcyR1E7RUFDSTtFQUNBO0FBdDJHWjtBQXcyR1k7RUFDSTtBQXQyR2hCO0FBMDJHUTtFQUNJLGNqR3J3SFc7RWlHc3dIWDtFQUNBO0VBQ0E7QUF4MkdaO0FBNDJHSTtFQUNJLHlCakd6d0hlO0VpRzB3SGY7QUExMkdSLEM7Ozs7QXhIL2FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBdUc4Tko7O0F2RzNOQTtFQUNJO0F1RzhOSjs7QXJHcE9JO0VBREo7SUFFUTtFcUd3T047QUFDRjs7QXJHck9BO0VBQ0k7RUFDQTtFQUNBO0FxR3dPSjtBckd0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFcUd5T047QUFDRjs7QXJHdE9BO0VBR1k7SUFDSTtJQUNBO0VxR3VPZDtFckd6T1U7SUFDSTtJQUNBO0VxRzJPZDtFckc3T1U7SUFDSTtJQUNBO0VxRytPZDtFckdqUFU7SUFDSTtJQUNBO0VxR21QZDtFckdyUFU7SUFDSTtJQUNBO0VxR3VQZDtFckd6UFU7SUFDSTtJQUNBO0VxRzJQZDtFckc3UFU7SUFDSTtJQUNBO0VxRytQZDtFckdqUVU7SUFDSTtJQUNBO0VxR21RZDtFckdyUVU7SUFDSTtJQUNBO0VxR3VRZDtFckd6UVU7SUFDSTtJQUNBO0VxRzJRZDtFckc3UVU7SUFDSTtJQUNBO0VxRytRZDtFckdqUlU7SUFDSTtJQUNBO0VxR21SZDtFckc5UUU7SUFDSTtFcUdnUk47QUFDRjtBckczUVE7RUFESjtJQUVRO0VxRzhRVjtBQUNGOztBcEduVEE7O0VBQUE7QUNBQTs7RUFBQTtBbUc2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Q3pINzFFZ0I7RXlIODFFaEIsY2xHbjVFUztFa0dvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBWUk7RTlHanRIQSwyQ0FGaUI7RUFFakIsbUNBRmlCO0U4R3F0SGI7RUFBQTtFQUFBO0VBQ0E7TUFBQTtVQUFBO0VBQ0E7RUFDQTtFQUNBLGNsRzV0SGU7RWtHNnRIZjtFQUNBLHdDekhwckhvQjtFeUhxckhwQjtBQTcxR1I7QUErMUdRO0VBQ0ksY2xHbHVIVztBa0dxWXZCO0FBZzJHUTtFQUNJLGNsR3R1SFc7QWtHd1l2QjtBQWkyR1E7RUFFSSxjbEczdUhXO0VrRzR1SFg7QUFoMkdaO0FBbzJHWTtFQUdJLGNsR252SE87QWtHK1l2QjtBQXcyR1E7RUFDSTtFQUNBLGNsR3p2SFc7QWtHbVp2QjtBQTAyR0k7RUFDSTtBQXgyR1I7QUE0MkdRO0VBQ0k7QUExMkdaLEM7Ozs7QXpIcGFBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBd0c4Tko7O0F4RzNOQTtFQUNJO0F3RzhOSjs7QXRHcE9JO0VBREo7SUFFUTtFc0d3T047QUFDRjs7QXRHck9BO0VBQ0k7RUFDQTtFQUNBO0FzR3dPSjtBdEd0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFc0d5T047QUFDRjs7QXRHdE9BO0VBR1k7SUFDSTtJQUNBO0VzR3VPZDtFdEd6T1U7SUFDSTtJQUNBO0VzRzJPZDtFdEc3T1U7SUFDSTtJQUNBO0VzRytPZDtFdEdqUFU7SUFDSTtJQUNBO0VzR21QZDtFdEdyUFU7SUFDSTtJQUNBO0VzR3VQZDtFdEd6UFU7SUFDSTtJQUNBO0VzRzJQZDtFdEc3UFU7SUFDSTtJQUNBO0VzRytQZDtFdEdqUVU7SUFDSTtJQUNBO0VzR21RZDtFdEdyUVU7SUFDSTtJQUNBO0VzR3VRZDtFdEd6UVU7SUFDSTtJQUNBO0VzRzJRZDtFdEc3UVU7SUFDSTtJQUNBO0VzRytRZDtFdEdqUlU7SUFDSTtJQUNBO0VzR21SZDtFdEc5UUU7SUFDSTtFc0dnUk47QUFDRjtBdEczUVE7RUFESjtJQUVRO0VzRzhRVjtBQUNGOztBckduVEE7O0VBQUE7QUNBQTs7RUFBQTtBb0c2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3QzFINzFFZ0I7RTBIODFFaEIsY25HbjVFUztFbUdvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBV0E7RUFDSTtBQTUxR0o7QUE4MUdJO0VBQ0ksd0MxSC9xSG9CO0UwSGdySHBCO0VBQ0Esa0JsRXR1SGdCO0VrRXV1SGhCO0VBQ0E7RUFDQTtFQUNBO0FBNTFHUjtBNUc5V0k7RTRHbXNIQTtJQVVRO0VBMzFHVjtBQUNGO0FBODFHSTtFQUNJO0VBQ0E7RUFDQSw4QnhFcHZIYztFd0VxdkhkO0VBQ0E7QUE1MUdSO0FBODFHUTtFQUNJO0FBNTFHWixDOzs7O0ExSDdaQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QXlHOE5KOztBekczTkE7RUFDSTtBeUc4Tko7O0F2R3BPSTtFQURKO0lBRVE7RXVHd09OO0FBQ0Y7O0F2R3JPQTtFQUNJO0VBQ0E7RUFDQTtBdUd3T0o7QXZHdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RXVHeU9OO0FBQ0Y7O0F2R3RPQTtFQUdZO0lBQ0k7SUFDQTtFdUd1T2Q7RXZHek9VO0lBQ0k7SUFDQTtFdUcyT2Q7RXZHN09VO0lBQ0k7SUFDQTtFdUcrT2Q7RXZHalBVO0lBQ0k7SUFDQTtFdUdtUGQ7RXZHclBVO0lBQ0k7SUFDQTtFdUd1UGQ7RXZHelBVO0lBQ0k7SUFDQTtFdUcyUGQ7RXZHN1BVO0lBQ0k7SUFDQTtFdUcrUGQ7RXZHalFVO0lBQ0k7SUFDQTtFdUdtUWQ7RXZHclFVO0lBQ0k7SUFDQTtFdUd1UWQ7RXZHelFVO0lBQ0k7SUFDQTtFdUcyUWQ7RXZHN1FVO0lBQ0k7SUFDQTtFdUcrUWQ7RXZHalJVO0lBQ0k7SUFDQTtFdUdtUmQ7RXZHOVFFO0lBQ0k7RXVHZ1JOO0FBQ0Y7QXZHM1FRO0VBREo7SUFFUTtFdUc4UVY7QUFDRjs7QXRHblRBOztFQUFBO0FDQUE7O0VBQUE7QXFHNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0MzSDcxRWdCO0UySDgxRWhCLGNwR241RVM7RW9HbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQWFJO0VBQ0k7RUFDQTtFQUNBLGNwRzF0SGU7QW9HNFh2QjtBQWkyR0k7RUFDSTtBQS8xR1I7QUFrMkdJO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUFBO0VBQUE7RUFDQTtNQUFBO1VBQUE7RUFDQTtNQUFBO1VBQUE7RUFDQSxzQnBHbHZIYztFb0dtdkhkO0FBaDJHUixDOzs7O0EzSHhaQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QTBHOE5KOztBMUczTkE7RUFDSTtBMEc4Tko7O0F4R3BPSTtFQURKO0lBRVE7RXdHd09OO0FBQ0Y7O0F4R3JPQTtFQUNJO0VBQ0E7RUFDQTtBd0d3T0o7QXhHdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RXdHeU9OO0FBQ0Y7O0F4R3RPQTtFQUdZO0lBQ0k7SUFDQTtFd0d1T2Q7RXhHek9VO0lBQ0k7SUFDQTtFd0cyT2Q7RXhHN09VO0lBQ0k7SUFDQTtFd0crT2Q7RXhHalBVO0lBQ0k7SUFDQTtFd0dtUGQ7RXhHclBVO0lBQ0k7SUFDQTtFd0d1UGQ7RXhHelBVO0lBQ0k7SUFDQTtFd0cyUGQ7RXhHN1BVO0lBQ0k7SUFDQTtFd0crUGQ7RXhHalFVO0lBQ0k7SUFDQTtFd0dtUWQ7RXhHclFVO0lBQ0k7SUFDQTtFd0d1UWQ7RXhHelFVO0lBQ0k7SUFDQTtFd0cyUWQ7RXhHN1FVO0lBQ0k7SUFDQTtFd0crUWQ7RXhHalJVO0lBQ0k7SUFDQTtFd0dtUmQ7RXhHOVFFO0lBQ0k7RXdHZ1JOO0FBQ0Y7QXhHM1FRO0VBREo7SUFFUTtFd0c4UVY7QUFDRjs7QXZHblRBOztFQUFBO0FDQUE7O0VBQUE7QXNHNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0M1SDcxRWdCO0U0SDgxRWhCLGNyR241RVM7RXFHbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQVdBO0VBQ0k7QUE1MUdKO0FBODFHSTtFQUNJO0FBNTFHUixDOzs7O0E1SHhZQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QTJHOE5KOztBM0czTkE7RUFDSTtBMkc4Tko7O0F6R3BPSTtFQURKO0lBRVE7RXlHd09OO0FBQ0Y7O0F6R3JPQTtFQUNJO0VBQ0E7RUFDQTtBeUd3T0o7QXpHdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RXlHeU9OO0FBQ0Y7O0F6R3RPQTtFQUdZO0lBQ0k7SUFDQTtFeUd1T2Q7RXpHek9VO0lBQ0k7SUFDQTtFeUcyT2Q7RXpHN09VO0lBQ0k7SUFDQTtFeUcrT2Q7RXpHalBVO0lBQ0k7SUFDQTtFeUdtUGQ7RXpHclBVO0lBQ0k7SUFDQTtFeUd1UGQ7RXpHelBVO0lBQ0k7SUFDQTtFeUcyUGQ7RXpHN1BVO0lBQ0k7SUFDQTtFeUcrUGQ7RXpHalFVO0lBQ0k7SUFDQTtFeUdtUWQ7RXpHclFVO0lBQ0k7SUFDQTtFeUd1UWQ7RXpHelFVO0lBQ0k7SUFDQTtFeUcyUWQ7RXpHN1FVO0lBQ0k7SUFDQTtFeUcrUWQ7RXpHalJVO0lBQ0k7SUFDQTtFeUdtUmQ7RXpHOVFFO0lBQ0k7RXlHZ1JOO0FBQ0Y7QXpHM1FRO0VBREo7SUFFUTtFeUc4UVY7QUFDRjs7QXhHblRBOztFQUFBO0FDQUE7O0VBQUE7QXVHNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0M3SDcxRWdCO0U2SDgxRWhCLGN0R241RVM7RXNHbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQWNRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsY3RHL3RIVztBc0dnWXZCO0FBazJHUTtFQUNJO0VBQUE7RUFBQTtFQUNBO0VBQUE7TUFBQTtVQUFBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQWgyR1o7QUFtMkdRO0VBQ0ksY3RHOXVIVztBc0c2WXZCO0FBazJHWTtFQUNJLGN0Ry91SE87QXNHK1l2QjtBQW8yR1E7RUFDSSxjdEdydkhXO0FzR21adkI7QUFtMkdZO0VBQ0ksY3RHdHZITztBc0dxWnZCO0FBbzJHWTtFQUNJO0VBQ0E7RUFDQTtBQWwyR2hCO0FBczJHUTtFQUNJO0VBQUE7TUFBQTtVQUFBO0VBQ0E7RUFBQTtFQUFBO0VBQ0E7TUFBQTtFQUNBO0tBQUE7VUFBQTtBQXAyR1osQzs7OztBN0gzYUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0E0RzhOSjs7QTVHM05BO0VBQ0k7QTRHOE5KOztBMUdwT0k7RUFESjtJQUVRO0UwR3dPTjtBQUNGOztBMUdyT0E7RUFDSTtFQUNBO0VBQ0E7QTBHd09KO0ExR3RPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0UwR3lPTjtBQUNGOztBMUd0T0E7RUFHWTtJQUNJO0lBQ0E7RTBHdU9kO0UxR3pPVTtJQUNJO0lBQ0E7RTBHMk9kO0UxRzdPVTtJQUNJO0lBQ0E7RTBHK09kO0UxR2pQVTtJQUNJO0lBQ0E7RTBHbVBkO0UxR3JQVTtJQUNJO0lBQ0E7RTBHdVBkO0UxR3pQVTtJQUNJO0lBQ0E7RTBHMlBkO0UxRzdQVTtJQUNJO0lBQ0E7RTBHK1BkO0UxR2pRVTtJQUNJO0lBQ0E7RTBHbVFkO0UxR3JRVTtJQUNJO0lBQ0E7RTBHdVFkO0UxR3pRVTtJQUNJO0lBQ0E7RTBHMlFkO0UxRzdRVTtJQUNJO0lBQ0E7RTBHK1FkO0UxR2pSVTtJQUNJO0lBQ0E7RTBHbVJkO0UxRzlRRTtJQUNJO0UwR2dSTjtBQUNGO0ExRzNRUTtFQURKO0lBRVE7RTBHOFFWO0FBQ0Y7O0F6R25UQTs7RUFBQTtBQ0FBOztFQUFBO0F3RzZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDOUg3MUVnQjtFOEg4MUVoQixjdkduNUVTO0V1R281RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFXQTtFQUNJO0VBQUE7RUFBQTtBQTUxR0o7QUE4MUdJO0VuSG50SEEsMkNBRmlCO0VBRWpCLG1DQUZpQjtFbUh1dEhiLHlCdkdudEhnQjtFdUdvdEhoQjtFQUNBLGtCdEV2dUhnQjtFc0V3dUhoQjtFQUFBO0VBQUE7RUFDQTtFQUNBO01BQUE7RUFDQTtNQUFBO1VBQUE7RUFDQTtFQUNBO0VBQ0EsY3ZHbnVIZTtFdUdvdUhmO0FBNTFHUjtBQTgxR1E7RUFDSTtBQTUxR1o7QUErMUdRO0VBRUksY3ZHNXVIVztBdUc4WXZCO0FBazJHSTtFQUNJLHNCdkd2dkhjO0F1R3VadEIsQzs7OztBOUg1WkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0E2RzhOSjs7QTdHM05BO0VBQ0k7QTZHOE5KOztBM0dwT0k7RUFESjtJQUVRO0UyR3dPTjtBQUNGOztBM0dyT0E7RUFDSTtFQUNBO0VBQ0E7QTJHd09KO0EzR3RPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0UyR3lPTjtBQUNGOztBM0d0T0E7RUFHWTtJQUNJO0lBQ0E7RTJHdU9kO0UzR3pPVTtJQUNJO0lBQ0E7RTJHMk9kO0UzRzdPVTtJQUNJO0lBQ0E7RTJHK09kO0UzR2pQVTtJQUNJO0lBQ0E7RTJHbVBkO0UzR3JQVTtJQUNJO0lBQ0E7RTJHdVBkO0UzR3pQVTtJQUNJO0lBQ0E7RTJHMlBkO0UzRzdQVTtJQUNJO0lBQ0E7RTJHK1BkO0UzR2pRVTtJQUNJO0lBQ0E7RTJHbVFkO0UzR3JRVTtJQUNJO0lBQ0E7RTJHdVFkO0UzR3pRVTtJQUNJO0lBQ0E7RTJHMlFkO0UzRzdRVTtJQUNJO0lBQ0E7RTJHK1FkO0UzR2pSVTtJQUNJO0lBQ0E7RTJHbVJkO0UzRzlRRTtJQUNJO0UyR2dSTjtBQUNGO0EzRzNRUTtFQURKO0lBRVE7RTJHOFFWO0FBQ0Y7O0ExR25UQTs7RUFBQTtBQ0FBOztFQUFBO0F5RzZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDL0g3MUVnQjtFK0g4MUVoQixjeEduNUVTO0V3R281RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFXQTtFQUNJO0VBQ0E7QUE1MUdKO0FBODFHSTs7RUFFSTtBQTUxR1I7QUE4MUdROztFQUNJO0FBMzFHWjtBQTgxR0k7RXBINXRIQSwyQ0FGaUI7RUFFakIsbUNBRmlCO0VvSGd1SGI7RUFBQTtFQUFBO0VBQ0E7TUFBQTtVQUFBO0VBQ0E7RUFDQSxjeEd0dUhlO0V3R3V1SGY7QUE1MUdSO0FBZzJHWTs7O0VBRUksY3hHOXVITztBd0dpWnZCO0FBaTJHSTtFQUNJO0FBLzFHUixDOzs7O0EvSDlaQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QThHOE5KOztBOUczTkE7RUFDSTtBOEc4Tko7O0E1R3BPSTtFQURKO0lBRVE7RTRHd09OO0FBQ0Y7O0E1R3JPQTtFQUNJO0VBQ0E7RUFDQTtBNEd3T0o7QTVHdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RTRHeU9OO0FBQ0Y7O0E1R3RPQTtFQUdZO0lBQ0k7SUFDQTtFNEd1T2Q7RTVHek9VO0lBQ0k7SUFDQTtFNEcyT2Q7RTVHN09VO0lBQ0k7SUFDQTtFNEcrT2Q7RTVHalBVO0lBQ0k7SUFDQTtFNEdtUGQ7RTVHclBVO0lBQ0k7SUFDQTtFNEd1UGQ7RTVHelBVO0lBQ0k7SUFDQTtFNEcyUGQ7RTVHN1BVO0lBQ0k7SUFDQTtFNEcrUGQ7RTVHalFVO0lBQ0k7SUFDQTtFNEdtUWQ7RTVHclFVO0lBQ0k7SUFDQTtFNEd1UWQ7RTVHelFVO0lBQ0k7SUFDQTtFNEcyUWQ7RTVHN1FVO0lBQ0k7SUFDQTtFNEcrUWQ7RTVHalJVO0lBQ0k7SUFDQTtFNEdtUmQ7RTVHOVFFO0lBQ0k7RTRHZ1JOO0FBQ0Y7QTVHM1FRO0VBREo7SUFFUTtFNEc4UVY7QUFDRjs7QTNHblRBOztFQUFBO0FDQUE7O0VBQUE7QTBHNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0NoSTcxRWdCO0VnSTgxRWhCLGN6R241RVM7RXlHbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQVdBO0VBQ0ksZ0J6RzV0SGtCO0V5RzZ0SGxCO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFlwRWh1SGdCO0FvRW9ZcEI7QWxINVdJO0VrSGdzSEo7SUFXUTtJQUNBO0lBQ0E7RUEzMUdOO0FBQ0Y7QUE2MUdJO0VBQ0k7RUFDQTtFQUNBO0FBMzFHUjtBbEh4WEk7RWtIZ3RIQTtJQU1RO0lBQ0E7RUExMUdWO0FBQ0Y7QUE2MUdJO0VBQ0k7RUFDQSxzQnpHeHZIYztFeUd5dkhkO0FBMzFHUjtBbEhuWUk7RWtIMnRIQTtJQU1RO0VBMTFHVjtFQTQxR1U7SUFDSTtFQTExR2Q7QUFDRjtBQTYxR1E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EseUJ6RzN2SFk7QXlHZ2F4QjtBbEhuWkk7RWtId3VISTtJQVNRO0VBMTFHZDtBQUNGO0FsSHhaSTtFa0hxdkhJO0lBRVE7RUEzMUdkO0FBQ0Y7QWxIN1pJO0VrSDB2SFE7SUFFUTtFQTMxR2xCO0FBQ0Y7QWxIM1lJO0VrSDB1SEk7SUFFUTtFQTcxR2Q7QUFDRjtBQSsxR1k7RUFDSSxtQnpHdHhITztFeUd1eEhQLFd6R255SE07RXlHb3lITjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBNzFHaEI7QUFnMkdZO0VBQ0k7QUE5MUdoQjtBQW0yR0k7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLGN6Rzl6SGE7QXlHNmRyQjtBQW0yR1E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBajJHWjtBQXEyR0k7RUFDSTtFQUNBO0FBbjJHUjtBQXMyR0k7RUFDSTtFQUNBLGN6R3IwSGU7RXlHczBIZjtFQUNBO0VBQ0E7QUFwMkdSO0FBdTJHSTtFQUNJLGN6RzUwSGU7QXlHdWV2QjtBQXUyR1E7RUFDSTtBQXIyR1o7QUF5MkdJO0VBQ0k7QUF2MkdSO0FBMDJHSTtFQUNJLHNCekc5MUhjO0V5RysxSGQ7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQXgyR1I7QWxIaGVJO0VrSGswSEE7SUFTUTtJQUNBO0VBdjJHVjtBQUNGO0FBMjJHUTtFQUNJO0FBejJHWixDOzs7O0FoSXpnQkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0ErRzhOSjs7QS9HM05BO0VBQ0k7QStHOE5KOztBN0dwT0k7RUFESjtJQUVRO0U2R3dPTjtBQUNGOztBN0dyT0E7RUFDSTtFQUNBO0VBQ0E7QTZHd09KO0E3R3RPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0U2R3lPTjtBQUNGOztBN0d0T0E7RUFHWTtJQUNJO0lBQ0E7RTZHdU9kO0U3R3pPVTtJQUNJO0lBQ0E7RTZHMk9kO0U3RzdPVTtJQUNJO0lBQ0E7RTZHK09kO0U3R2pQVTtJQUNJO0lBQ0E7RTZHbVBkO0U3R3JQVTtJQUNJO0lBQ0E7RTZHdVBkO0U3R3pQVTtJQUNJO0lBQ0E7RTZHMlBkO0U3RzdQVTtJQUNJO0lBQ0E7RTZHK1BkO0U3R2pRVTtJQUNJO0lBQ0E7RTZHbVFkO0U3R3JRVTtJQUNJO0lBQ0E7RTZHdVFkO0U3R3pRVTtJQUNJO0lBQ0E7RTZHMlFkO0U3RzdRVTtJQUNJO0lBQ0E7RTZHK1FkO0U3R2pSVTtJQUNJO0lBQ0E7RTZHbVJkO0U3RzlRRTtJQUNJO0U2R2dSTjtBQUNGO0E3RzNRUTtFQURKO0lBRVE7RTZHOFFWO0FBQ0Y7O0E1R25UQTs7RUFBQTtBQ0FBOztFQUFBO0EyRzZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDakk3MUVnQjtFaUk4MUVoQixjMUduNUVTO0UwR281RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFXQTtFQUNJO0FBNTFHSjtBQTgxR0k7RUFDSTtFQUNBLHlCMUdudEhnQjtBMEd1WHhCO0FBODFHUTtFQUNJLHdDakluckhnQjtBaUl1VjVCO0FBKzFHUTtFQUNJLHNCMUd2dUhVO0EwRzBZdEI7QUFnMkdJO0VBQ0k7QUE5MUdSO0FBaTJHSTtFQUNJO0VBQ0E7QUEvMUdSO0FBazJHSTtFQUNJLGMxRzl1SGU7RTBHK3VIZjtFQUNBO0FBaDJHUjtBQWkyR1E7RUFDSSxjMUc3dUhXO0UwRzh1SFg7RUFDQTtFQUNBO0FBLzFHWjtBbkgxV0k7RW1IcXNISTtJQU1RO0lBQ0E7RUE3MUdkO0FBQ0Y7QUFpMkdJO0VBQ0k7RUFDQTtFQUNBLGMxR2h3SGU7RTBHaXdIZjtFQUNBO0FBLzFHUjtBQW0yR0k7RUFDSTtFQUNBO0VBQ0EsYzFHendIZTtFMEcwd0hmO0VBQ0E7RUFDQTtBQWoyR1I7QUFvMkdJO0VBQ0ksYzFHanhIZTtBMEcrYXZCO0FBbzJHUTtFQUNJO0FBbDJHWjtBbkhyWUk7RW1IMHVIQTtJQUVRO0lBQ0E7RUFuMkdWO0FBQ0Y7QUFxMkdJO0VBQ0k7RUFDQTtBQW4yR1I7QUFvMkdRO0VBQ0k7QUFsMkdaO0FuSGxaSTtFbUhndkhBO0lBT1E7RUFqMkdWO0FBQ0Y7QW5IdlpJO0VtSGd2SEE7SUFVUTtFQS8xR1Y7QUFDRixDOzs7O0FqSW5kQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QWdIOE5KOztBaEgzTkE7RUFDSTtBZ0g4Tko7O0E5R3BPSTtFQURKO0lBRVE7RThHd09OO0FBQ0Y7O0E5R3JPQTtFQUNJO0VBQ0E7RUFDQTtBOEd3T0o7QTlHdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RThHeU9OO0FBQ0Y7O0E5R3RPQTtFQUdZO0lBQ0k7SUFDQTtFOEd1T2Q7RTlHek9VO0lBQ0k7SUFDQTtFOEcyT2Q7RTlHN09VO0lBQ0k7SUFDQTtFOEcrT2Q7RTlHalBVO0lBQ0k7SUFDQTtFOEdtUGQ7RTlHclBVO0lBQ0k7SUFDQTtFOEd1UGQ7RTlHelBVO0lBQ0k7SUFDQTtFOEcyUGQ7RTlHN1BVO0lBQ0k7SUFDQTtFOEcrUGQ7RTlHalFVO0lBQ0k7SUFDQTtFOEdtUWQ7RTlHclFVO0lBQ0k7SUFDQTtFOEd1UWQ7RTlHelFVO0lBQ0k7SUFDQTtFOEcyUWQ7RTlHN1FVO0lBQ0k7SUFDQTtFOEcrUWQ7RTlHalJVO0lBQ0k7SUFDQTtFOEdtUmQ7RTlHOVFFO0lBQ0k7RThHZ1JOO0FBQ0Y7QTlHM1FRO0VBREo7SUFFUTtFOEc4UVY7QUFDRjs7QTdHblRBOztFQUFBO0FDQUE7O0VBQUE7QTRHNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0NsSTcxRWdCO0VrSTgxRWhCLGMzR241RVM7RTJHbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQVlJO0VBQ0ksYzNHdnRIZTtFMkd3dEhmO0FBNzFHUjtBQSsxR1E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQTcxR1o7QUErMUdZO0VBQ0k7QUE3MUdoQixDOzs7O0FsSWxaQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QWlIOE5KOztBakgzTkE7RUFDSTtBaUg4Tko7O0EvR3BPSTtFQURKO0lBRVE7RStHd09OO0FBQ0Y7O0EvR3JPQTtFQUNJO0VBQ0E7RUFDQTtBK0d3T0o7QS9HdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RStHeU9OO0FBQ0Y7O0EvR3RPQTtFQUdZO0lBQ0k7SUFDQTtFK0d1T2Q7RS9Hek9VO0lBQ0k7SUFDQTtFK0cyT2Q7RS9HN09VO0lBQ0k7SUFDQTtFK0crT2Q7RS9HalBVO0lBQ0k7SUFDQTtFK0dtUGQ7RS9HclBVO0lBQ0k7SUFDQTtFK0d1UGQ7RS9HelBVO0lBQ0k7SUFDQTtFK0cyUGQ7RS9HN1BVO0lBQ0k7SUFDQTtFK0crUGQ7RS9HalFVO0lBQ0k7SUFDQTtFK0dtUWQ7RS9HclFVO0lBQ0k7SUFDQTtFK0d1UWQ7RS9HelFVO0lBQ0k7SUFDQTtFK0cyUWQ7RS9HN1FVO0lBQ0k7SUFDQTtFK0crUWQ7RS9HalJVO0lBQ0k7SUFDQTtFK0dtUmQ7RS9HOVFFO0lBQ0k7RStHZ1JOO0FBQ0Y7QS9HM1FRO0VBREo7SUFFUTtFK0c4UVY7QUFDRjs7QTlHblRBOztFQUFBO0FDQUE7O0VBQUE7QTZHNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0NuSTcxRWdCO0VtSTgxRWhCLGM1R241RVM7RTRHbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQVlJO0VBQ0ksOEJqRmx1SGM7QWlGcVl0QjtBckhyV0k7RXFIaXNIQTtJQUlRO0lBQ0E7RUE1MUdWO0VBODFHVTs7SUFFSTtFQTUxR2Q7RUErMUdVO0lBQ0k7RUE3MUdkO0FBQ0Y7QUFnMkdRO0VBQ0k7RUFDQSxjNUd6dUhXO0U0RzB1SFg7RUFDQTtFQUNBO0VBQ0E7QUE5MUdaO0FySDFYSTtFcUhrdEhJO0lBU1E7RUE3MUdkO0FBQ0Y7QUErMUdZO0VBWko7SUFhUTtFQTUxR2Q7QUFDRjtBQSsxR1E7RUFDSTtBQTcxR1o7QXJIdllJO0VxSG11SEk7SUFJUTtFQTUxR2Q7QUFDRjtBQTgxR1k7RUFDSTtFQUNBO0FBNTFHaEI7QUFpMkdZO0VBQ0k7RUFDQTtBQS8xR2hCO0FBbzJHWTtFQUdJO0FBcDJHaEI7QXJIdlpJO0VxSHd2SFE7SUFNUTtFQW4yR2xCO0FBQ0Y7QUFzMkdZO0VBQ0ksYzVHeHhITztBNEdvYnZCO0FBdTJHWTtFQUNJO0FBcjJHaEI7QUF1MkdnQjtFQUhKO0lBSVE7RUFwMkdsQjtBQUNGO0FBczJHZ0I7RUFDSTtFQUNBO0FBcDJHcEI7QUFzMkdvQjtFQUpKO0lBS1E7RUFuMkd0QjtBQUNGO0FBcTJHb0I7RUFDSSx5QjVHdnlIRDtBNEdvY3ZCO0FBdTJHZ0I7RUFDSTtBQXIyR3BCO0FBdzJHZ0I7RUFDSTtFQUNBO0FBdDJHcEI7QXJIMWJJO0VxSDh4SFk7SUFLUTtFQXIyR3RCO0FBQ0Y7QUF3MkdnQjtFQUVJO0FBdjJHcEI7QUF5MkdvQjtFQUpKO0lBS1E7RUF0Mkd0QjtBQUNGO0FBeTJHZ0I7RUFDSTtFQUNBO0VBQ0E7QUF2MkdwQjtBQXkyR29CO0VBQ0ksYzVHdHpIQTtBNEcrY3hCO0FBMDJHb0I7RUFDSSxjNUdqMEhGO0E0R3lkdEI7QUFnM0dnQjtFQUNJO0FBOTJHcEI7QUFrM0dZO0VBQ0k7RUFDQTtBQWgzR2hCO0FySHpkSTtFcUhnMEhJO0lBYVE7RUFoM0dkO0FBQ0YsQzs7OztBbkk5ZkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0FrSDhOSjs7QWxIM05BO0VBQ0k7QWtIOE5KOztBaEhwT0k7RUFESjtJQUVRO0VnSHdPTjtBQUNGOztBaEhyT0E7RUFDSTtFQUNBO0VBQ0E7QWdId09KO0FoSHRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0VnSHlPTjtBQUNGOztBaEh0T0E7RUFHWTtJQUNJO0lBQ0E7RWdIdU9kO0VoSHpPVTtJQUNJO0lBQ0E7RWdIMk9kO0VoSDdPVTtJQUNJO0lBQ0E7RWdIK09kO0VoSGpQVTtJQUNJO0lBQ0E7RWdIbVBkO0VoSHJQVTtJQUNJO0lBQ0E7RWdIdVBkO0VoSHpQVTtJQUNJO0lBQ0E7RWdIMlBkO0VoSDdQVTtJQUNJO0lBQ0E7RWdIK1BkO0VoSGpRVTtJQUNJO0lBQ0E7RWdIbVFkO0VoSHJRVTtJQUNJO0lBQ0E7RWdIdVFkO0VoSHpRVTtJQUNJO0lBQ0E7RWdIMlFkO0VoSDdRVTtJQUNJO0lBQ0E7RWdIK1FkO0VoSGpSVTtJQUNJO0lBQ0E7RWdIbVJkO0VoSDlRRTtJQUNJO0VnSGdSTjtBQUNGO0FoSDNRUTtFQURKO0lBRVE7RWdIOFFWO0FBQ0Y7O0EvR25UQTs7RUFBQTtBQ0FBOztFQUFBO0E4RzZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDcEk3MUVnQjtFb0k4MUVoQixjN0duNUVTO0U2R281RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFZSTtFQUNJO0VBQ0E7QUE3MUdSO0FBKzFHUTtFQUNJO0VBQ0E7RUFDQTtBQTcxR1o7QUFnMkdRO0VBQ0k7RUFDQTtBQTkxR1o7QUFpMkdRO0VBQ0k7RUFDQTtFQUVBLGM3R3p1SFc7RTZHMHVIWDtBQWgyR1o7QUFrMkdZO0VBQ0k7RUFDQTtFQUNBLGM3Ry91SE87RTZHZ3ZIUDtFQUNBO0FBaDJHaEI7QUFzMkdZO0VBQ0k7RUFDQTtFQUNBO0VBQ0EsYzdHM3ZITztBNkd1WnZCO0FBMDJHWTtFQUNJO0VBQ0E7RUFBQTtFQUFBO0FBeDJHaEI7QUEyMkdZO0VBQ0k7QUF6MkdoQjtBQTYyR1E7RUFDSTtFQUFBO0VBQUE7RUFDQTtNQUFBO1VBQUE7RUFDQTtNQUFBO1VBQUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQTMyR1o7QUE2MkdZO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsOEI3R2p3SFE7QTZHc1p4QjtBQTgyR1k7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBNTJHaEI7QUFnM0dRO0VBQ0k7RUFDQTtBQTkyR1o7QUFpM0dRO0VBQ0k7RUFDQTtBQS8yR1o7QUFpM0dZO0VBQ0k7RUFBQTtFQUFBO0VBQ0E7RUFDQTtFQUNBO0VBQUE7TUFBQTtVQUFBO0VBQ0E7TUFBQTtVQUFBO0FBLzJHaEI7QUFtM0dRO0VBQ0k7RUFDQTtFQUNBO0VBQ0EsYzdHN3pIVztBNkc0Y3ZCO0FBbzNHUTtFQUNJO0VBQ0E7RUFDQTtFQUNBLGM3R3IwSFc7QTZHbWR2QjtBQW8zR1k7RUFDSTtFQUNBO0FBbDNHaEIsQzs7OztBcElqZUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0FtSDhOSjs7QW5IM05BO0VBQ0k7QW1IOE5KOztBakhwT0k7RUFESjtJQUVRO0VpSHdPTjtBQUNGOztBakhyT0E7RUFDSTtFQUNBO0VBQ0E7QWlId09KO0FqSHRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0VpSHlPTjtBQUNGOztBakh0T0E7RUFHWTtJQUNJO0lBQ0E7RWlIdU9kO0VqSHpPVTtJQUNJO0lBQ0E7RWlIMk9kO0VqSDdPVTtJQUNJO0lBQ0E7RWlIK09kO0VqSGpQVTtJQUNJO0lBQ0E7RWlIbVBkO0VqSHJQVTtJQUNJO0lBQ0E7RWlIdVBkO0VqSHpQVTtJQUNJO0lBQ0E7RWlIMlBkO0VqSDdQVTtJQUNJO0lBQ0E7RWlIK1BkO0VqSGpRVTtJQUNJO0lBQ0E7RWlIbVFkO0VqSHJRVTtJQUNJO0lBQ0E7RWlIdVFkO0VqSHpRVTtJQUNJO0lBQ0E7RWlIMlFkO0VqSDdRVTtJQUNJO0lBQ0E7RWlIK1FkO0VqSGpSVTtJQUNJO0lBQ0E7RWlIbVJkO0VqSDlRRTtJQUNJO0VpSGdSTjtBQUNGO0FqSDNRUTtFQURKO0lBRVE7RWlIOFFWO0FBQ0Y7O0FoSG5UQTs7RUFBQTtBQ0FBOztFQUFBO0ErRzZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDckk3MUVnQjtFcUk4MUVoQixjOUduNUVTO0U4R281RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFZSTtFQUNJO0FBNzFHUjtBQSsxR1E7RUFDSTtBQTcxR1o7QUFnMkdRO0VBQ0k7RUFDQTtFQUNBO0VBQ0EsYzlHanVIVztFOEdrdUhYO0VBQ0E7RUFDQTtBQTkxR1o7QUFnMkdZO0VBRUk7RUFDQTtFQUNBLG1COUcxdUhPO0U4RzJ1SFA7RUFDQTtVQUFBO0FBLzFHaEI7QUFrMkdZO0VBQ0k7RUFDQTtFQUNBO0FBaDJHaEI7QUFtMkdZO0VBQ0k7RUFDQTtFQUNBO0FBajJHaEI7QUFvMkdZO0VBQ0kseUI5R3h2SE87QThHc1p2QjtBQW8yR2dCO0VBQ0k7QUFsMkdwQjtBQXUyR1E7RUFDSTtFQUNBO0VBQ0EsYzlHdndIVztFOEd3d0hYO0VBQ0EseUI5R3J3SFc7QThHZ2F2QjtBQXcyR1E7RUFDSSx5QjlHendIVztFOEcwd0hYO0FBdDJHWjtBQXcyR1k7RUFDSTtFQUNBO0VBQ0EsYzlHbnhITztBOEc2YXZCO0FBeTJHWTtFQUNJO0VBQ0E7RUFDQSxjOUcxeEhPO0U4RzJ4SFA7QUF2MkdoQixDOzs7O0FySTliQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QW9IOE5KOztBcEgzTkE7RUFDSTtBb0g4Tko7O0FsSHBPSTtFQURKO0lBRVE7RWtId09OO0FBQ0Y7O0FsSHJPQTtFQUNJO0VBQ0E7RUFDQTtBa0h3T0o7QWxIdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RWtIeU9OO0FBQ0Y7O0FsSHRPQTtFQUdZO0lBQ0k7SUFDQTtFa0h1T2Q7RWxIek9VO0lBQ0k7SUFDQTtFa0gyT2Q7RWxIN09VO0lBQ0k7SUFDQTtFa0grT2Q7RWxIalBVO0lBQ0k7SUFDQTtFa0htUGQ7RWxIclBVO0lBQ0k7SUFDQTtFa0h1UGQ7RWxIelBVO0lBQ0k7SUFDQTtFa0gyUGQ7RWxIN1BVO0lBQ0k7SUFDQTtFa0grUGQ7RWxIalFVO0lBQ0k7SUFDQTtFa0htUWQ7RWxIclFVO0lBQ0k7SUFDQTtFa0h1UWQ7RWxIelFVO0lBQ0k7SUFDQTtFa0gyUWQ7RWxIN1FVO0lBQ0k7SUFDQTtFa0grUWQ7RWxIalJVO0lBQ0k7SUFDQTtFa0htUmQ7RWxIOVFFO0lBQ0k7RWtIZ1JOO0FBQ0Y7QWxIM1FRO0VBREo7SUFFUTtFa0g4UVY7QUFDRjs7QWpIblRBOztFQUFBO0FDQUE7O0VBQUE7QWdINkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0N0STcxRWdCO0VzSTgxRWhCLGMvR241RVM7RStHbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQVlJO0VBQ0k7RUFDQTtFQUNBO0FBNzFHUjtBQSsxR1E7RUFDSTtBQTcxR1o7QUErMUdRO0VBQ0k7RUFDQTtFQUNBLGMvRzV0SFc7RStHNnRIWDtFQUNBO0VBQ0E7QUE3MUdaO0F4SDNWSTtFd0hrckhJO0lBUVE7SUFDQTtFQTMxR2Q7QUFDRjtBQTgxR1k7RUFDSTtBQTUxR2hCO0FBODFHWTtFQUNJO0FBNTFHaEI7QUFnMkdRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQSxjL0dudkhXO0ErR3FadkI7QUFrMkdZO0VBQ0k7QUFoMkdoQjtBQW0yR1k7RUFDSSxjL0c1dkhPO0UrRzZ2SFA7QUFqMkdoQjtBQW0yR2dCO0VBQ0ksYy9HL3dIQTtBK0c4YXBCO0FBcTJHWTtFQUNJO0FBbjJHaEI7QUFxMkdZO0VBQ0k7QUFuMkdoQjtBQXUyR1E7RUFDSTtBQXIyR1o7QUF3MkdRO0VBQ0k7RUFDQTtBQXQyR1o7QUF5MkdRO0VBQ0k7RUFDQTtBQXYyR1o7QUF5MkdZO0VBQ0k7RUFDQSxXL0d0eUhNO0UrR3V5SE47QUF2MkdoQjtBQTIyR1k7RUFDSTtFQUNBLFcvRzd5SE07RStHOHlITjtBQXoyR2hCO0FBMDJHZ0I7RUFDSSxXL0doekhFO0ErR3djdEI7QXhIdFpJO0V3SG13SEk7SUFFUTtFQTMyR2Q7QUFDRixDOzs7O0F0SWxkQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QXFIOE5KOztBckgzTkE7RUFDSTtBcUg4Tko7O0FuSHBPSTtFQURKO0lBRVE7RW1Id09OO0FBQ0Y7O0FuSHJPQTtFQUNJO0VBQ0E7RUFDQTtBbUh3T0o7QW5IdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RW1IeU9OO0FBQ0Y7O0FuSHRPQTtFQUdZO0lBQ0k7SUFDQTtFbUh1T2Q7RW5Iek9VO0lBQ0k7SUFDQTtFbUgyT2Q7RW5IN09VO0lBQ0k7SUFDQTtFbUgrT2Q7RW5IalBVO0lBQ0k7SUFDQTtFbUhtUGQ7RW5IclBVO0lBQ0k7SUFDQTtFbUh1UGQ7RW5IelBVO0lBQ0k7SUFDQTtFbUgyUGQ7RW5IN1BVO0lBQ0k7SUFDQTtFbUgrUGQ7RW5IalFVO0lBQ0k7SUFDQTtFbUhtUWQ7RW5IclFVO0lBQ0k7SUFDQTtFbUh1UWQ7RW5IelFVO0lBQ0k7SUFDQTtFbUgyUWQ7RW5IN1FVO0lBQ0k7SUFDQTtFbUgrUWQ7RW5IalJVO0lBQ0k7SUFDQTtFbUhtUmQ7RW5IOVFFO0lBQ0k7RW1IZ1JOO0FBQ0Y7QW5IM1FRO0VBREo7SUFFUTtFbUg4UVY7QUFDRjs7QWxIblRBOztFQUFBO0FDQUE7O0VBQUE7QWlINkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0N2STcxRWdCO0V1STgxRWhCLGNoSG41RVM7RWdIbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQVlJO0VBQ0ksY2hIbHRIZTtFZ0htdEhmO0VBQ0E7RUFDQTtBQTcxR1I7QXpIeFdJO0V5SGlzSEE7SUFPUTtFQTUxR1Y7QUFDRjtBQTgxR1E7RUFDSTtFQUNBO0VBQ0E7RUFDQSxjaEhwdUhXO0VnSHF1SFg7QUE1MUdaO0FBKzFHUTtFQUNJO0VBQ0E7RUFDQTtFQUNBLGNoSDd1SFc7RWdIOHVIWDtBQTcxR1o7QUFnMkdRO0VBS0k7QUFsMkdaO0FBcTJHUTtFQUNJO0FBbjJHWjtBQXUyR1k7RUFDSTtBQXIyR2hCO0FBMDJHWTtFQUNJO0FBeDJHaEI7QUEyMkdZO0VBQ0k7QUF6MkdoQjtBQTIyR2dCO0VBSEo7SUFJUTtFQXgyR2xCO0FBQ0Y7QUEyMkdZO0VBQ0k7QUF6MkdoQjtBekgzWEk7RXlIbXVIUTtJQUdRO0lBQ0E7RUF2MkdsQjtBQUNGO0FBMjJHZ0I7RUFDSTtFQUNBO0FBejJHcEI7QUE2MkdZO0VBQ0k7RUFDQTtBQTMyR2hCO0FBODJHWTtFQUNJO01BQUE7VUFBQTtBQTUyR2hCO0FBaTNHWTtFQUNJO0VBQ0E7QUEvMkdoQjtBQW0zR1E7RUFFSTtBQWwzR1o7QUFvM0dZO0VBQ0k7QUFsM0doQjtBQW8zR2dCO0VBQ0k7RUFDQTtFQUNBLGNoSHB6SEc7RWdIcXpISDtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBbDNHcEI7QUF1M0dRO0VBQ0k7QUFyM0daO0FBMDNHWTtFQUNJLGNoSHIwSE87QWdINmN2QjtBQTIzR1k7RUFDSTtBQXozR2hCO0FBNjNHUTtFQUNJO0FBMzNHWjtBQTgzR1E7RUFDSTtFQUNBO0FBNTNHWjtBQWc0R1k7RUFDSTtFQUNBO0VBQ0EsY2hIMTFITztFZ0gyMUhQO0VBQ0E7RUFDQTtBQTkzR2hCO0FBazRHUTtFQUNJLHlCaEgvMUhZO0VnSGcySFo7RUFDQSxrQi9FcDNIWTtFK0VxM0haLGNoSDEySFc7RWdIMjJIWDtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBaDRHWjtBQW00R1E7RUFDSTtBQWo0R1o7QUFrNEdZO0VBQ0kseUJoSGgzSFE7RWdIaTNIUjtFQUNBO0VBQ0E7QUFoNEdoQjtBekgvY0k7RXlIaTFIUTtJQUVRO0lBQ0E7RUFoNEdsQjtBQUNGO0FBazRHWTtFQUNJO0VBQ0E7QUFoNEdoQjtBQW80R1E7RUFDSTtBQWw0R1o7QXpIbmZJO0V5SG8zSEk7SUFJUTtFQWo0R2Q7QUFDRjtBQXE0R1k7RUFDSTtBQW40R2hCO0FBczRHWTtFQUNJLGNoSGw2SEs7QWdIOGhCckI7QUF3NEdRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7QUF0NEdaO0FBeTRHUTtFQUNJO0FBdjRHWjtBQTA0R1E7RUFDSTtBQXg0R1o7QXpIMWdCSTtFeUhxNUhJO0lBRVE7RUF6NEdkO0FBQ0Y7QUE0NEdRO0VBQ0k7QUExNEdaO0FBNjRHUTtFQUNJO0FBMzRHWjtBQSs0R1E7RUFDSTtBQTc0R1o7QUFnNUdRO0VBQ0k7QUE5NEdaO0FBazVHUTtFQUNJO0FBaDVHWjtBQW01R1E7RUFDSTtBQWo1R1osQzs7OztBdklqa0JBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBc0g4Tko7O0F0SDNOQTtFQUNJO0FzSDhOSjs7QXBIcE9JO0VBREo7SUFFUTtFb0h3T047QUFDRjs7QXBIck9BO0VBQ0k7RUFDQTtFQUNBO0FvSHdPSjtBcEh0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFb0h5T047QUFDRjs7QXBIdE9BO0VBR1k7SUFDSTtJQUNBO0VvSHVPZDtFcEh6T1U7SUFDSTtJQUNBO0VvSDJPZDtFcEg3T1U7SUFDSTtJQUNBO0VvSCtPZDtFcEhqUFU7SUFDSTtJQUNBO0VvSG1QZDtFcEhyUFU7SUFDSTtJQUNBO0VvSHVQZDtFcEh6UFU7SUFDSTtJQUNBO0VvSDJQZDtFcEg3UFU7SUFDSTtJQUNBO0VvSCtQZDtFcEhqUVU7SUFDSTtJQUNBO0VvSG1RZDtFcEhyUVU7SUFDSTtJQUNBO0VvSHVRZDtFcEh6UVU7SUFDSTtJQUNBO0VvSDJRZDtFcEg3UVU7SUFDSTtJQUNBO0VvSCtRZDtFcEhqUlU7SUFDSTtJQUNBO0VvSG1SZDtFcEg5UUU7SUFDSTtFb0hnUk47QUFDRjtBcEgzUVE7RUFESjtJQUVRO0VvSDhRVjtBQUNGOztBbkhuVEE7O0VBQUE7QUNBQTs7RUFBQTtBa0g2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Q3hJNzFFZ0I7RXdJODFFaEIsY2pIbjVFUztFaUhvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBWUk7RUFDSTtBQTcxR1I7QUErMUdRO0VBQ0k7TUFBQTtVQUFBO0FBNzFHWjtBMUh4V0k7RTBIaXNIQTtJQVFRLHNCakhwdUhVO0VpSHVZcEI7QUFDRixDOzs7O0F4STdZQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QXVIOE5KOztBdkgzTkE7RUFDSTtBdUg4Tko7O0FySHBPSTtFQURKO0lBRVE7RXFId09OO0FBQ0Y7O0FySHJPQTtFQUNJO0VBQ0E7RUFDQTtBcUh3T0o7QXJIdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RXFIeU9OO0FBQ0Y7O0FySHRPQTtFQUdZO0lBQ0k7SUFDQTtFcUh1T2Q7RXJIek9VO0lBQ0k7SUFDQTtFcUgyT2Q7RXJIN09VO0lBQ0k7SUFDQTtFcUgrT2Q7RXJIalBVO0lBQ0k7SUFDQTtFcUhtUGQ7RXJIclBVO0lBQ0k7SUFDQTtFcUh1UGQ7RXJIelBVO0lBQ0k7SUFDQTtFcUgyUGQ7RXJIN1BVO0lBQ0k7SUFDQTtFcUgrUGQ7RXJIalFVO0lBQ0k7SUFDQTtFcUhtUWQ7RXJIclFVO0lBQ0k7SUFDQTtFcUh1UWQ7RXJIelFVO0lBQ0k7SUFDQTtFcUgyUWQ7RXJIN1FVO0lBQ0k7SUFDQTtFcUgrUWQ7RXJIalJVO0lBQ0k7SUFDQTtFcUhtUmQ7RXJIOVFFO0lBQ0k7RXFIZ1JOO0FBQ0Y7QXJIM1FRO0VBREo7SUFFUTtFcUg4UVY7QUFDRjs7QXBIblRBOztFQUFBO0FDQUE7O0VBQUE7QW1INkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0N6STcxRWdCO0V5STgxRWhCLGNsSG41RVM7RWtIbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQVlJO0VBQ0ksOEJ2Rmx1SGM7QXVGcVl0QjtBQSsxR1E7RUFDSSxjbEgxdEhXO0VrSDJ0SFg7RUFDQTtFQUNBO0FBNzFHWjtBQSsxR1k7RUFOSjtJQU9RO0VBNTFHZDtBQUNGO0FBKzFHUTtFQUVJO0VBQ0E7RUFDQTtBQTkxR1o7QUFnMkdZO0VBTko7SUFPUTtJQUNBO0VBNzFHZDtBQUNGO0FBZzJHUTtFQUdJO0FBaDJHWjtBQWsyR1k7RUFDSTtFQUNBO0FBaDJHaEI7QUFzMkdnQjtFQUNJO0FBcDJHcEI7QUF1MkdnQjtFQUNJO0FBcjJHcEI7QUF3MkdnQjtFQUNJO0VBQ0E7QUF0MkdwQjtBQXkyR2dCO0VBQ0k7QUF2MkdwQjtBQTIyR1k7RUFDSTtBQXoyR2hCO0FBMjJHZ0I7RUFISjtJQUlRO0VBeDJHbEI7QUFDRjtBQTAyR2dCO0VBQ0k7RUFDQTtBQXgyR3BCO0FBMDJHb0I7RUFKSjtJQUtRO0VBdjJHdEI7QUFDRjtBQXkyR29CO0VBQ0kseUJsSDN4SEQ7QWtIb2J2QjtBQTIyR2dCO0VBQ0k7QUF6MkdwQjtBQTQyR2dCO0VBQ0k7RUFDQTtBQTEyR3BCO0EzSDFhSTtFMkhreEhZO0lBS1E7RUF6Mkd0QjtBQUNGO0FBNDJHZ0I7RUFFSTtBQTMyR3BCO0FBNjJHb0I7RUFKSjtJQUtRO0VBMTJHdEI7QUFDRjtBQTYyR2dCO0VBQ0k7RUFDQTtFQUNBO0FBMzJHcEI7QUE2MkdvQjtFQUNJLGNsSDF5SEE7QWtIK2J4QjtBQTgyR29CO0VBQ0ksY2xIcnpIRjtBa0h5Y3RCO0FBazNHUTtFQUNJO0FBaDNHWjtBQWszR1k7RUFISjtJQUlRO0VBLzJHZDtBQUNGO0FBazNHUTtFQUNJO0FBaDNHWjtBM0g3Y0k7RTJINHpISTtJQUlRO0VBLzJHZDtBQUNGO0FBaTNHWTtFQVBKO0lBUVE7RUE5MkdkO0FBQ0Y7QTNIaGNJO0UySGt6SFE7SUFDSTtFQS8yR2Q7QUFDRixDOzs7O0F6STVmQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QXdIOE5KOztBeEgzTkE7RUFDSTtBd0g4Tko7O0F0SHBPSTtFQURKO0lBRVE7RXNId09OO0FBQ0Y7O0F0SHJPQTtFQUNJO0VBQ0E7RUFDQTtBc0h3T0o7QXRIdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RXNIeU9OO0FBQ0Y7O0F0SHRPQTtFQUdZO0lBQ0k7SUFDQTtFc0h1T2Q7RXRIek9VO0lBQ0k7SUFDQTtFc0gyT2Q7RXRIN09VO0lBQ0k7SUFDQTtFc0grT2Q7RXRIalBVO0lBQ0k7SUFDQTtFc0htUGQ7RXRIclBVO0lBQ0k7SUFDQTtFc0h1UGQ7RXRIelBVO0lBQ0k7SUFDQTtFc0gyUGQ7RXRIN1BVO0lBQ0k7SUFDQTtFc0grUGQ7RXRIalFVO0lBQ0k7SUFDQTtFc0htUWQ7RXRIclFVO0lBQ0k7SUFDQTtFc0h1UWQ7RXRIelFVO0lBQ0k7SUFDQTtFc0gyUWQ7RXRIN1FVO0lBQ0k7SUFDQTtFc0grUWQ7RXRIalJVO0lBQ0k7SUFDQTtFc0htUmQ7RXRIOVFFO0lBQ0k7RXNIZ1JOO0FBQ0Y7QXRIM1FRO0VBREo7SUFFUTtFc0g4UVY7QUFDRjs7QXJIblRBOztFQUFBO0FDQUE7O0VBQUE7QW9INkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0MxSTcxRWdCO0UwSTgxRWhCLGNuSG41RVM7RW1IbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQWNZO0VBQ0k7RUFDQTtBQS8xR2hCO0FBazJHWTtFQUNJO0VBQ0E7RUFDQTtBQWgyR2hCO0FBbTJHWTtFQUNJLGNuSHB1SE87QW1IbVl2QixDOzs7O0ExSTlZQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QXlIOE5KOztBekgzTkE7RUFDSTtBeUg4Tko7O0F2SHBPSTtFQURKO0lBRVE7RXVId09OO0FBQ0Y7O0F2SHJPQTtFQUNJO0VBQ0E7RUFDQTtBdUh3T0o7QXZIdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RXVIeU9OO0FBQ0Y7O0F2SHRPQTtFQUdZO0lBQ0k7SUFDQTtFdUh1T2Q7RXZIek9VO0lBQ0k7SUFDQTtFdUgyT2Q7RXZIN09VO0lBQ0k7SUFDQTtFdUgrT2Q7RXZIalBVO0lBQ0k7SUFDQTtFdUhtUGQ7RXZIclBVO0lBQ0k7SUFDQTtFdUh1UGQ7RXZIelBVO0lBQ0k7SUFDQTtFdUgyUGQ7RXZIN1BVO0lBQ0k7SUFDQTtFdUgrUGQ7RXZIalFVO0lBQ0k7SUFDQTtFdUhtUWQ7RXZIclFVO0lBQ0k7SUFDQTtFdUh1UWQ7RXZIelFVO0lBQ0k7SUFDQTtFdUgyUWQ7RXZIN1FVO0lBQ0k7SUFDQTtFdUgrUWQ7RXZIalJVO0lBQ0k7SUFDQTtFdUhtUmQ7RXZIOVFFO0lBQ0k7RXVIZ1JOO0FBQ0Y7QXZIM1FRO0VBREo7SUFFUTtFdUg4UVY7QUFDRjs7QXRIblRBOztFQUFBO0FDQUE7O0VBQUE7QXFINkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0MzSTcxRWdCO0UySTgxRWhCLGNwSG41RVM7RW9IbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQWFRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7QUE5MUdaO0FBaTJHUTtFQUNJO0FBLzFHWjtBQWkyR1k7RUFDSTtBQS8xR2hCO0FBazJHWTtFQUNJO0FBaDJHaEI7QUFvMkdRO0VBQ0ksY3BIdHRIWTtBb0hvWHhCO0FBcTJHUTtFQUNJLGNwSGp1SFU7QW9IOFh0QjtBQXMyR1E7RUFDSTtBQXAyR1o7QUFzMkdZO0VBSEo7SUFJUTtFQW4yR2Q7QUFDRjtBQXMyR1E7RUFDSTtBQXAyR1o7QUF1MkdRO0VBQ0k7SUFDSTtJQUNBO0VBcjJHZDtFQXUyR2M7SUFFSTtFQXQyR2xCO0VBMDJHVTtJQUNJO0lBQ0E7RUF4MkdkO0VBMjJHVTtJQUNJO0VBejJHZDtBQUNGO0FBNDJHUTtFQUNJO0FBMTJHWixDOzs7O0EzSXJiQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QTBIOE5KOztBMUgzTkE7RUFDSTtBMEg4Tko7O0F4SHBPSTtFQURKO0lBRVE7RXdId09OO0FBQ0Y7O0F4SHJPQTtFQUNJO0VBQ0E7RUFDQTtBd0h3T0o7QXhIdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RXdIeU9OO0FBQ0Y7O0F4SHRPQTtFQUdZO0lBQ0k7SUFDQTtFd0h1T2Q7RXhIek9VO0lBQ0k7SUFDQTtFd0gyT2Q7RXhIN09VO0lBQ0k7SUFDQTtFd0grT2Q7RXhIalBVO0lBQ0k7SUFDQTtFd0htUGQ7RXhIclBVO0lBQ0k7SUFDQTtFd0h1UGQ7RXhIelBVO0lBQ0k7SUFDQTtFd0gyUGQ7RXhIN1BVO0lBQ0k7SUFDQTtFd0grUGQ7RXhIalFVO0lBQ0k7SUFDQTtFd0htUWQ7RXhIclFVO0lBQ0k7SUFDQTtFd0h1UWQ7RXhIelFVO0lBQ0k7SUFDQTtFd0gyUWQ7RXhIN1FVO0lBQ0k7SUFDQTtFd0grUWQ7RXhIalJVO0lBQ0k7SUFDQTtFd0htUmQ7RXhIOVFFO0lBQ0k7RXdIZ1JOO0FBQ0Y7QXhIM1FRO0VBREo7SUFFUTtFd0g4UVY7QUFDRjs7QXZIblRBOztFQUFBO0FDQUE7O0VBQUE7QXNINkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0M1STcxRWdCO0U0STgxRWhCLGNySG41RVM7RXFIbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQVlJO0VBQ0k7QUE3MUdSO0FBKzFHUTtFQUhKO0lBSVE7RUE1MUdWO0FBQ0Y7QUE4MUdRO0VBQ0k7QUE1MUdaLEM7Ozs7QTVJN1lBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBMkg4Tko7O0EzSDNOQTtFQUNJO0EySDhOSjs7QXpIcE9JO0VBREo7SUFFUTtFeUh3T047QUFDRjs7QXpIck9BO0VBQ0k7RUFDQTtFQUNBO0F5SHdPSjtBekh0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFeUh5T047QUFDRjs7QXpIdE9BO0VBR1k7SUFDSTtJQUNBO0V5SHVPZDtFekh6T1U7SUFDSTtJQUNBO0V5SDJPZDtFekg3T1U7SUFDSTtJQUNBO0V5SCtPZDtFekhqUFU7SUFDSTtJQUNBO0V5SG1QZDtFekhyUFU7SUFDSTtJQUNBO0V5SHVQZDtFekh6UFU7SUFDSTtJQUNBO0V5SDJQZDtFekg3UFU7SUFDSTtJQUNBO0V5SCtQZDtFekhqUVU7SUFDSTtJQUNBO0V5SG1RZDtFekhyUVU7SUFDSTtJQUNBO0V5SHVRZDtFekh6UVU7SUFDSTtJQUNBO0V5SDJRZDtFekg3UVU7SUFDSTtJQUNBO0V5SCtRZDtFekhqUlU7SUFDSTtJQUNBO0V5SG1SZDtFekg5UUU7SUFDSTtFeUhnUk47QUFDRjtBekgzUVE7RUFESjtJQUVRO0V5SDhRVjtBQUNGOztBeEhuVEE7O0VBQUE7QUNBQTs7RUFBQTtBdUg2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3QzdJNzFFZ0I7RTZJODFFaEIsY3RIbjVFUztFc0hvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBWUk7RUFDSSw4QjNGbHVIYztBMkZxWXRCO0FBZzJHWTtFQUNJO0VBQ0E7QUE5MUdoQjtBQW0yR1k7RUFDSTtBQWoyR2hCO0FBbTJHZ0I7RUFISjtJQUlRO0VBaDJHbEI7QUFDRjtBQWsyR2dCO0VBQ0k7RUFDQTtBQWgyR3BCO0FBazJHb0I7RUFKSjtJQUtRO0VBLzFHdEI7QUFDRjtBQWkyR29CO0VBQ0kseUJ0SDd1SEQ7QXNIOFl2QjtBQW0yR2dCO0VBQ0k7QUFqMkdwQjtBQW8yR2dCO0VBQ0k7RUFDQTtBQWwyR3BCO0EvSHBZSTtFK0hvdUhZO0lBS1E7RUFqMkd0QjtBQUNGO0FBbzJHZ0I7RUFFSTtBQW4yR3BCO0FBcTJHb0I7RUFKSjtJQUtRO0VBbDJHdEI7QUFDRjtBQXEyR2dCO0VBQ0k7RUFDQTtFQUNBO0FBbjJHcEI7QUFxMkdvQjtFQUNJLGN0SDV2SEE7QXNIeVp4QjtBQXMyR29CO0VBQ0ksY3RIdndIRjtBc0htYXRCLEM7Ozs7QUM1YkEsZ0JBQWdCO0E5SUFoQjs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QTRIK05KOztBNUg1TkE7RUFDSTtBNEgrTko7O0ExSHJPSTtFQURKO0lBRVE7RTBIeU9OO0FBQ0Y7O0ExSHRPQTtFQUNJO0VBQ0E7RUFDQTtBMEh5T0o7QTFIdk9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RTBIME9OO0FBQ0Y7O0ExSHZPQTtFQUdZO0lBQ0k7SUFDQTtFMEh3T2Q7RTFIMU9VO0lBQ0k7SUFDQTtFMEg0T2Q7RTFIOU9VO0lBQ0k7SUFDQTtFMEhnUGQ7RTFIbFBVO0lBQ0k7SUFDQTtFMEhvUGQ7RTFIdFBVO0lBQ0k7SUFDQTtFMEh3UGQ7RTFIMVBVO0lBQ0k7SUFDQTtFMEg0UGQ7RTFIOVBVO0lBQ0k7SUFDQTtFMEhnUWQ7RTFIbFFVO0lBQ0k7SUFDQTtFMEhvUWQ7RTFIdFFVO0lBQ0k7SUFDQTtFMEh3UWQ7RTFIMVFVO0lBQ0k7SUFDQTtFMEg0UWQ7RTFIOVFVO0lBQ0k7SUFDQTtFMEhnUmQ7RTFIbFJVO0lBQ0k7SUFDQTtFMEhvUmQ7RTFIL1FFO0lBQ0k7RTBIaVJOO0FBQ0Y7QTFINVFRO0VBREo7SUFFUTtFMEgrUVY7QUFDRjs7QXpIcFRBOztFQUFBO0FDQUE7O0VBQUE7QXdINkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWlMWjs7QUE5SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0M5STcxRWdCO0U4STgxRWhCLGN2SG41RVM7RXVIbzVFVDtBQXJpRVo7QUF1aUVZO0VBQ0k7QUFyaUVoQjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBMGlFZ0I7RUFDSTtBQXhpRXBCO0FBNmlFUTtFQUNJO0FBM2lFWjs7QUEreEZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQVlJO0VBQ0k7QUE1MUdSO0FoSXRXSTtFZ0lpc0hBO0lBSVEsc0J2SGh1SFU7RXVIcVlwQjtBQUNGO0FBNjFHUTtFQUNJO0FBMzFHWjtBQTgxR1E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUE1MUdaO0FBODFHWTtFQUNJO0FBNTFHaEI7QUErMUdZO0VBQ0k7QUE3MUdoQjtBQWcyR1k7RUFDSTtFQUNBO0VBQ0E7VUFBQTtFQUNBO0VBQ0E7RUFDQTtBQTkxR2hCO0FBazJHUTtFQUNJO0FBaDJHWjtBaEl2WUk7RWdJc3VISTtJQUlRO0lBQ0E7RUEvMUdkO0FBQ0Y7QUFpMkdZO0VBQ0k7RUFDQTtBQS8xR2hCO0FBaTJHZ0I7RUFDSTtFQUNBO0VBQ0E7QUEvMUdwQjtBQW0yR29CO0VBQ0k7QUFqMkd4QjtBQW8yR29CO0VBQ0k7QUFsMkd4QjtBQXcyR1E7RUFDSTtBQXQyR1o7QWhJL1pJO0VnSW93SEk7SUFJUTtFQXIyR2Q7QUFDRjtBQXcyR1E7RUFDSTtFQUNBO0FBdDJHWjtBQXcyR1k7RUFDSTtBQXQyR2hCO0FBeTJHWTtFQUNJO0FBdjJHaEIsQzs7OztBOUk5Y0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0E2SDhOSjs7QTdIM05BO0VBQ0k7QTZIOE5KOztBM0hwT0k7RUFESjtJQUVRO0UySHdPTjtBQUNGOztBM0hyT0E7RUFDSTtFQUNBO0VBQ0E7QTJId09KO0EzSHRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0UySHlPTjtBQUNGOztBM0h0T0E7RUFHWTtJQUNJO0lBQ0E7RTJIdU9kO0UzSHpPVTtJQUNJO0lBQ0E7RTJIMk9kO0UzSDdPVTtJQUNJO0lBQ0E7RTJIK09kO0UzSGpQVTtJQUNJO0lBQ0E7RTJIbVBkO0UzSHJQVTtJQUNJO0lBQ0E7RTJIdVBkO0UzSHpQVTtJQUNJO0lBQ0E7RTJIMlBkO0UzSDdQVTtJQUNJO0lBQ0E7RTJIK1BkO0UzSGpRVTtJQUNJO0lBQ0E7RTJIbVFkO0UzSHJRVTtJQUNJO0lBQ0E7RTJIdVFkO0UzSHpRVTtJQUNJO0lBQ0E7RTJIMlFkO0UzSDdRVTtJQUNJO0lBQ0E7RTJIK1FkO0UzSGpSVTtJQUNJO0lBQ0E7RTJIbVJkO0UzSDlRRTtJQUNJO0UySGdSTjtBQUNGO0EzSDNRUTtFQURKO0lBRVE7RTJIOFFWO0FBQ0Y7O0ExSG5UQTs7RUFBQTtBQ0FBOztFQUFBO0F5SDZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDL0k3MUVnQjtFK0k4MUVoQixjeEhuNUVTO0V3SG81RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFZSTtFQUNJO0FBNzFHUjtBQSsxR1E7RUFDSTtFQUNBO0FBNzFHWjtBQWcyR1E7RUFDSTtFQUNBO0VBQ0E7QUE5MUdaO0FBZzJHWTtFQUNJO0VBQ0E7QUE5MUdoQjtBQWsyR1E7RUFDSTtFQUNBO0VBQ0E7RUFDQSxjeEg3dUhXO0V3SDh1SFg7QUFoMkdaO0FBbTJHUTtFQUNJO0VBQ0E7RUFDQTtFQUNBLGN4SHR2SFc7RXdIdXZIWDtBQWoyR1osQzs7OztBL0loYUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0E4SDhOSjs7QTlIM05BO0VBQ0k7QThIOE5KOztBNUhwT0k7RUFESjtJQUVRO0U0SHdPTjtBQUNGOztBNUhyT0E7RUFDSTtFQUNBO0VBQ0E7QTRId09KO0E1SHRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0U0SHlPTjtBQUNGOztBNUh0T0E7RUFHWTtJQUNJO0lBQ0E7RTRIdU9kO0U1SHpPVTtJQUNJO0lBQ0E7RTRIMk9kO0U1SDdPVTtJQUNJO0lBQ0E7RTRIK09kO0U1SGpQVTtJQUNJO0lBQ0E7RTRIbVBkO0U1SHJQVTtJQUNJO0lBQ0E7RTRIdVBkO0U1SHpQVTtJQUNJO0lBQ0E7RTRIMlBkO0U1SDdQVTtJQUNJO0lBQ0E7RTRIK1BkO0U1SGpRVTtJQUNJO0lBQ0E7RTRIbVFkO0U1SHJRVTtJQUNJO0lBQ0E7RTRIdVFkO0U1SHpRVTtJQUNJO0lBQ0E7RTRIMlFkO0U1SDdRVTtJQUNJO0lBQ0E7RTRIK1FkO0U1SGpSVTtJQUNJO0lBQ0E7RTRIbVJkO0U1SDlRRTtJQUNJO0U0SGdSTjtBQUNGO0E1SDNRUTtFQURKO0lBRVE7RTRIOFFWO0FBQ0Y7O0EzSG5UQTs7RUFBQTtBQ0FBOztFQUFBO0EwSDZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDaEo3MUVnQjtFZ0o4MUVoQixjekhuNUVTO0V5SG81RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFZSTtFQUNJO0FBNzFHUixDOzs7O0FoSnJZQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QStIOE5KOztBL0gzTkE7RUFDSTtBK0g4Tko7O0E3SHBPSTtFQURKO0lBRVE7RTZId09OO0FBQ0Y7O0E3SHJPQTtFQUNJO0VBQ0E7RUFDQTtBNkh3T0o7QTdIdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RTZIeU9OO0FBQ0Y7O0E3SHRPQTtFQUdZO0lBQ0k7SUFDQTtFNkh1T2Q7RTdIek9VO0lBQ0k7SUFDQTtFNkgyT2Q7RTdIN09VO0lBQ0k7SUFDQTtFNkgrT2Q7RTdIalBVO0lBQ0k7SUFDQTtFNkhtUGQ7RTdIclBVO0lBQ0k7SUFDQTtFNkh1UGQ7RTdIelBVO0lBQ0k7SUFDQTtFNkgyUGQ7RTdIN1BVO0lBQ0k7SUFDQTtFNkgrUGQ7RTdIalFVO0lBQ0k7SUFDQTtFNkhtUWQ7RTdIclFVO0lBQ0k7SUFDQTtFNkh1UWQ7RTdIelFVO0lBQ0k7SUFDQTtFNkgyUWQ7RTdIN1FVO0lBQ0k7SUFDQTtFNkgrUWQ7RTdIalJVO0lBQ0k7SUFDQTtFNkhtUmQ7RTdIOVFFO0lBQ0k7RTZIZ1JOO0FBQ0Y7QTdIM1FRO0VBREo7SUFFUTtFNkg4UVY7QUFDRjs7QTVIblRBOztFQUFBO0FDQUE7O0VBQUE7QTJINkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0NqSjcxRWdCO0VpSjgxRWhCLGMxSG41RVM7RTBIbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQVlJO0VBQ0ksb0MxSHBySGdCO0UwSHFySGhCO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxZOUkzdEhzQjtFU0UxQjtFQUNBO0VBQ0E7RUREQSwyRUFGaUI7RUFFakIsbUVBRmlCO0FzSWlZckI7QUE2MUdRO0VySXh1SEo7RUFDQTtFQUNBO0FxSThZSjtBQTQxR1E7RUFFSTtBQTMxR1osQzs7OztBakp2WkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0FnSThOSjs7QWhJM05BO0VBQ0k7QWdJOE5KOztBOUhwT0k7RUFESjtJQUVRO0U4SHdPTjtBQUNGOztBOUhyT0E7RUFDSTtFQUNBO0VBQ0E7QThId09KO0E5SHRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0U4SHlPTjtBQUNGOztBOUh0T0E7RUFHWTtJQUNJO0lBQ0E7RThIdU9kO0U5SHpPVTtJQUNJO0lBQ0E7RThIMk9kO0U5SDdPVTtJQUNJO0lBQ0E7RThIK09kO0U5SGpQVTtJQUNJO0lBQ0E7RThIbVBkO0U5SHJQVTtJQUNJO0lBQ0E7RThIdVBkO0U5SHpQVTtJQUNJO0lBQ0E7RThIMlBkO0U5SDdQVTtJQUNJO0lBQ0E7RThIK1BkO0U5SGpRVTtJQUNJO0lBQ0E7RThIbVFkO0U5SHJRVTtJQUNJO0lBQ0E7RThIdVFkO0U5SHpRVTtJQUNJO0lBQ0E7RThIMlFkO0U5SDdRVTtJQUNJO0lBQ0E7RThIK1FkO0U5SGpSVTtJQUNJO0lBQ0E7RThIbVJkO0U5SDlRRTtJQUNJO0U4SGdSTjtBQUNGO0E5SDNRUTtFQURKO0lBRVE7RThIOFFWO0FBQ0Y7O0E3SG5UQTs7RUFBQTtBQ0FBOztFQUFBO0E0SDZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDbEo3MUVnQjtFa0o4MUVoQixjM0huNUVTO0UySG81RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFXQTtFQUNJO0VBQ0E7QUE1MUdKO0FwSXRXSTtFb0lnc0hKO0lBS1E7RUEzMUdOO0FBQ0YsQzs7OztBbEozWUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0FpSThOSjs7QWpJM05BO0VBQ0k7QWlJOE5KOztBL0hwT0k7RUFESjtJQUVRO0UrSHdPTjtBQUNGOztBL0hyT0E7RUFDSTtFQUNBO0VBQ0E7QStId09KO0EvSHRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0UrSHlPTjtBQUNGOztBL0h0T0E7RUFHWTtJQUNJO0lBQ0E7RStIdU9kO0UvSHpPVTtJQUNJO0lBQ0E7RStIMk9kO0UvSDdPVTtJQUNJO0lBQ0E7RStIK09kO0UvSGpQVTtJQUNJO0lBQ0E7RStIbVBkO0UvSHJQVTtJQUNJO0lBQ0E7RStIdVBkO0UvSHpQVTtJQUNJO0lBQ0E7RStIMlBkO0UvSDdQVTtJQUNJO0lBQ0E7RStIK1BkO0UvSGpRVTtJQUNJO0lBQ0E7RStIbVFkO0UvSHJRVTtJQUNJO0lBQ0E7RStIdVFkO0UvSHpRVTtJQUNJO0lBQ0E7RStIMlFkO0UvSDdRVTtJQUNJO0lBQ0E7RStIK1FkO0UvSGpSVTtJQUNJO0lBQ0E7RStIbVJkO0UvSDlRRTtJQUNJO0UrSGdSTjtBQUNGO0EvSDNRUTtFQURKO0lBRVE7RStIOFFWO0FBQ0Y7O0E5SG5UQTs7RUFBQTtBQ0FBOztFQUFBO0E2SDZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDbko3MUVnQjtFbUo4MUVoQixjNUhuNUVTO0U0SG81RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFZSTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RXhJenRISixxRkFGaUI7RUFFakIsNkVBRmlCO0F3SStYckI7QUErMUdRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0Esc0I1SDl1SFU7RTRIK3VIVjtVQUFBO0VBQ0E7RUFDQTtFeEl0dUhSLDhFQUZpQjtFQUVqQixzRUFGaUI7QXdJNFlyQjtBQWcyR1E7RUFDSTtFQUNBO0FBOTFHWjtBQWcyR1k7RUFDSTtFQUNBLHlCNUhod0hLO0E0SGthckI7QUFrMkdRO0VBQ0k7RUFDQTtBQWgyR1osQzs7OztBbkp0YUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0FrSThOSjs7QWxJM05BO0VBQ0k7QWtJOE5KOztBaElwT0k7RUFESjtJQUVRO0VnSXdPTjtBQUNGOztBaElyT0E7RUFDSTtFQUNBO0VBQ0E7QWdJd09KO0FoSXRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0VnSXlPTjtBQUNGOztBaEl0T0E7RUFHWTtJQUNJO0lBQ0E7RWdJdU9kO0VoSXpPVTtJQUNJO0lBQ0E7RWdJMk9kO0VoSTdPVTtJQUNJO0lBQ0E7RWdJK09kO0VoSWpQVTtJQUNJO0lBQ0E7RWdJbVBkO0VoSXJQVTtJQUNJO0lBQ0E7RWdJdVBkO0VoSXpQVTtJQUNJO0lBQ0E7RWdJMlBkO0VoSTdQVTtJQUNJO0lBQ0E7RWdJK1BkO0VoSWpRVTtJQUNJO0lBQ0E7RWdJbVFkO0VoSXJRVTtJQUNJO0lBQ0E7RWdJdVFkO0VoSXpRVTtJQUNJO0lBQ0E7RWdJMlFkO0VoSTdRVTtJQUNJO0lBQ0E7RWdJK1FkO0VoSWpSVTtJQUNJO0lBQ0E7RWdJbVJkO0VoSTlRRTtJQUNJO0VnSWdSTjtBQUNGO0FoSTNRUTtFQURKO0lBRVE7RWdJOFFWO0FBQ0Y7O0EvSG5UQTs7RUFBQTtBQ0FBOztFQUFBO0E4SDZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDcEo3MUVnQjtFb0o4MUVoQixjN0huNUVTO0U2SG81RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QXhFbHRISTtFQUNJO0VBQ0EsWXpFa0JpQjtBaUorV3pCO0F0SXRXSTtFOEQ3QkE7SUFLUTtFd0VrWVY7QUFDRjtBeEVoWVE7RWhFSUo7RUFDQTtFQUNBO0VEREEsMkVBRmlCO0VBRWpCLG1FQUZpQjtFaUVBVDtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsMENyRDJCWTtBNkh5V3hCO0F4RWpZUTtFQUNJO0VBQUE7RUFBQTtFQUNBO0VBQUE7TUFBQTtVQUFBO0U1RFBSO1VBQUE7RUpGQTtFQUNBO0VBQ0E7RUREQSxrR0FGaUI7RUFFakIsMEZBRmlCO0VpRWNUO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxzQnJENUJVO0VxRDZCVjtFQUNBO0F3RXFZWjtBdEl4WUk7RThEVkk7SWpFTkosbUdBRmlCO0lBRWpCLDJGQUZpQjtJaUV5Qkw7SUFDQTtJQUNBLGlCQXpDWTtFd0UrYTFCO0FBQ0Y7QXhFbllRO0VBQ0k7RUFBQTtFQUFBO0VBQ0E7RUFBQTtNQUFBO1VBQUE7RUFDQTtNQUFBO1VBQUE7RUFDQTtFQUNBO0VBQ0E7QXdFcVlaO0F4RWxZUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBd0VvWVo7QXhFallRO0VBQ0k7RUFDQTtNQUFBO0F3RW1ZWjtBdElwYUk7RThEK0JJO0lBS1E7UUFBQTtZQUFBO0V3RW9ZZDtBQUNGO0F0SXphSTtFOER3Q0k7SUFFUTtFd0VtWWQ7QUFDRjtBeEVoWVE7RUFDSTtFQUFBO0VBQUE7RUFDQTtNQUFBO1VBQUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QXdFa1laO0F4RWhZWTtFQUNJO0F3RWtZaEI7QXhFOVhRO0VBQ0k7RUFDQTtNQUFBO1VBQUE7QXdFZ1laO0F4RTdYUTtFQUNJO01BQUE7RUFDQTtBd0UrWFo7QXhFNVhRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQSxjckRqR1c7RXFEa0dYO0F3RThYWjtBeEU1WFk7RUFDSTtFQUNBO0VBQ0E7RUFDQTtVQUFBO0F3RThYaEI7QXhFM1hZO0VBQ0k7RUFDQTtFQUNBO0F3RTZYaEI7QXhFM1hnQjtFQUNJO0F3RTZYcEI7QXhFeFhRO0VoRTdISjtFQUNBO0VBQ0E7QXdJd2ZKO0F4RXpYUTtFaEVqSUo7RUFDQTtFQUNBO0VnRWlJUTtFQUNBO0F3RTZYWjs7QXhFbGdCSTtFQUNJO0VBQ0EsWXpFa0JpQjtBaUptZnpCO0F0STFlSTtFOEQ3QkE7SUFLUTtFd0VzZ0JWO0FBQ0Y7QXhFcGdCUTtFaEVJSjtFQUNBO0VBQ0E7RUREQSwyRUFGaUI7RUFFakIsbUVBRmlCO0VpRUFUO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSwwQ3JEMkJZO0E2SDZleEI7QXhFcmdCUTtFQUNJO0VBQUE7RUFBQTtFQUNBO0VBQUE7TUFBQTtVQUFBO0U1RFBSO1VBQUE7RUpGQTtFQUNBO0VBQ0E7RUREQSxrR0FGaUI7RUFFakIsMEZBRmlCO0VpRWNUO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxzQnJENUJVO0VxRDZCVjtFQUNBO0F3RXlnQlo7QXRJNWdCSTtFOERWSTtJakVOSixtR0FGaUI7SUFFakIsMkZBRmlCO0lpRXlCTDtJQUNBO0lBQ0EsaUJBekNZO0V3RW1qQjFCO0FBQ0Y7QXhFdmdCUTtFQUNJO0VBQUE7RUFBQTtFQUNBO0VBQUE7TUFBQTtVQUFBO0VBQ0E7TUFBQTtVQUFBO0VBQ0E7RUFDQTtFQUNBO0F3RXlnQlo7QXhFdGdCUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBd0V3Z0JaO0F4RXJnQlE7RUFDSTtFQUNBO01BQUE7QXdFdWdCWjtBdEl4aUJJO0U4RCtCSTtJQUtRO1FBQUE7WUFBQTtFd0V3Z0JkO0FBQ0Y7QXRJN2lCSTtFOER3Q0k7SUFFUTtFd0V1Z0JkO0FBQ0Y7QXhFcGdCUTtFQUNJO0VBQUE7RUFBQTtFQUNBO01BQUE7VUFBQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBd0VzZ0JaO0F4RXBnQlk7RUFDSTtBd0VzZ0JoQjtBeEVsZ0JRO0VBQ0k7RUFDQTtNQUFBO1VBQUE7QXdFb2dCWjtBeEVqZ0JRO0VBQ0k7TUFBQTtFQUNBO0F3RW1nQlo7QXhFaGdCUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsY3JEakdXO0VxRGtHWDtBd0VrZ0JaO0F4RWhnQlk7RUFDSTtFQUNBO0VBQ0E7RUFDQTtVQUFBO0F3RWtnQmhCO0F4RS9mWTtFQUNJO0VBQ0E7RUFDQTtBd0VpZ0JoQjtBeEUvZmdCO0VBQ0k7QXdFaWdCcEI7QXhFNWZRO0VoRTdISjtFQUNBO0VBQ0E7QXdJNG5CSjtBeEU3ZlE7RWhFaklKO0VBQ0E7RUFDQTtFZ0VpSVE7RUFDQTtBd0VpZ0JaO0F0SXptQkk7RThEN0JBO0l3RWt1SFE7RUF4bEdWO0FBQ0Y7QUEwbEdRO0V6SXh0SEosb0dBRmlCO0VBRWpCLDRGQUZpQjtFeUk0dEhUO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUF4bEdaO0FBMmxHUTtFQUNJO0VBQ0E7QUF6bEdaO0FBNGxHUTtFQUNJO0VBQ0E7RUFDQTtFQUNBLFc3SHJ2SFU7QTZIMnBCdEI7QUE2bEdRO0VBQ0k7RUFBQTtFQUFBO0VBQ0E7TUFBQTtVQUFBO0VBQ0E7RUFDQSxXN0g1dkhVO0U2SDZ2SFYsbUI3SGx3SFM7RTZIbXdIVDtNQUFBO0FBM2xHWjtBQTZsR1k7RUFDSSxtQjdIdHdISztBNkgycUJyQjtBQThsR1k7RUFDSTtNQUFBO0VBQ0E7QUE1bEdoQjtBQStsR1k7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUE3bEdoQjtBQWltR1E7RUFDSTtBQS9sR1osQzs7OztBcEoxckJBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBbUk4Tko7O0FuSTNOQTtFQUNJO0FtSThOSjs7QWpJcE9JO0VBREo7SUFFUTtFaUl3T047QUFDRjs7QWpJck9BO0VBQ0k7RUFDQTtFQUNBO0FpSXdPSjtBakl0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFaUl5T047QUFDRjs7QWpJdE9BO0VBR1k7SUFDSTtJQUNBO0VpSXVPZDtFakl6T1U7SUFDSTtJQUNBO0VpSTJPZDtFakk3T1U7SUFDSTtJQUNBO0VpSStPZDtFaklqUFU7SUFDSTtJQUNBO0VpSW1QZDtFaklyUFU7SUFDSTtJQUNBO0VpSXVQZDtFakl6UFU7SUFDSTtJQUNBO0VpSTJQZDtFakk3UFU7SUFDSTtJQUNBO0VpSStQZDtFaklqUVU7SUFDSTtJQUNBO0VpSW1RZDtFaklyUVU7SUFDSTtJQUNBO0VpSXVRZDtFakl6UVU7SUFDSTtJQUNBO0VpSTJRZDtFakk3UVU7SUFDSTtJQUNBO0VpSStRZDtFaklqUlU7SUFDSTtJQUNBO0VpSW1SZDtFakk5UUU7SUFDSTtFaUlnUk47QUFDRjtBakkzUVE7RUFESjtJQUVRO0VpSThRVjtBQUNGOztBaEluVEE7O0VBQUE7QUNBQTs7RUFBQTtBK0g2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Q3JKNzFFZ0I7RXFKODFFaEIsYzlIbjVFUztFOEhvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBV0E7RUFDSSxzQjlINXRIa0I7QThIZ1l0QjtBQTgxR0k7RUFISjtJQUlRO0VBMzFHTjtBQUNGO0FBNjFHSTtFQUNJO0VBQ0E7RUFDQTtBQTMxR1I7QXZJeFZJO0V1SWdySEE7SUFNUTtJQUNBO0lBQ0E7RUExMUdWO0FBQ0Y7QXZJdFhJO0V1SW90SEE7SUFFUTtJQUNBO0VBNTFHVjtBQUNGO0F2STVYSTtFdUlvdEhBO0lBT1E7SUFDQTtFQTMxR1Y7QUFDRjtBdklsWUk7RXVJb3RIQTtJQVlRO0lBQ0E7RUExMUdWO0FBQ0Y7QUE2MUdJO0VBQ0ksc0I5SGp3SGM7RThIa3dIZDtBQTMxR1I7QXZJNVlJO0V1SXF1SEE7SUFLUTtFQTExR1Y7QUFDRjtBdkkxWEk7RXVJdXRIQTtJQUVRO1lBQUE7RUEzMUdWO0FBQ0Y7QUE4MUdJO0UxSXB3SEEsMkNBRmlCO0VBRWpCLG1DQUZpQjtFMEl3d0hiO0VBQ0E7RUFDQTtFQUNBLGM5SHp3SGU7QThINmF2QjtBQSsxR0k7RUFDSTtBQTcxR1I7QUFnMkdJO0VBQ0k7RUFDQTtBQTkxR1I7QXZJN1lJO0V1SXl1SEE7SUFLUTtJQUFBO1FBQUE7WUFBQTtFQTcxR1Y7QUFDRjtBdkl6YUk7RXVJZ3dIQTtJQVFRO0lBQ0E7RUEzMUdWO0FBQ0Y7QUE4MUdJO0VBQ0k7RUFDQTtFQUNBLGM5SHJ5SGU7RThIc3lIZjtFQUNBO0FBNTFHUjtBQSsxR0k7RUFDSTtFQUNBO0VBQ0EsYzlIOXlIZTtFOEgreUhmO0FBNzFHUjtBQWcyR0k7RUFDSSx5QjlIbHlIZTtFOEhteUhmO0VBQ0EsVzlIMXpIYztBOEg0ZHRCO0FBZzJHSTtFQUNJO0VBQUE7RUFBQTtFQUNBO01BQUE7VUFBQTtBQTkxR1I7QUFnMkdJO0VBQ0k7RUFDQTtBQTkxR1I7QUFxMkdJO0VBQ0k7QUFuMkdSLEM7Ozs7QXJKNWVBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBb0k4Tko7O0FwSTNOQTtFQUNJO0FvSThOSjs7QWxJcE9JO0VBREo7SUFFUTtFa0l3T047QUFDRjs7QWxJck9BO0VBQ0k7RUFDQTtFQUNBO0FrSXdPSjtBbEl0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFa0l5T047QUFDRjs7QWxJdE9BO0VBR1k7SUFDSTtJQUNBO0VrSXVPZDtFbEl6T1U7SUFDSTtJQUNBO0VrSTJPZDtFbEk3T1U7SUFDSTtJQUNBO0VrSStPZDtFbElqUFU7SUFDSTtJQUNBO0VrSW1QZDtFbElyUFU7SUFDSTtJQUNBO0VrSXVQZDtFbEl6UFU7SUFDSTtJQUNBO0VrSTJQZDtFbEk3UFU7SUFDSTtJQUNBO0VrSStQZDtFbElqUVU7SUFDSTtJQUNBO0VrSW1RZDtFbElyUVU7SUFDSTtJQUNBO0VrSXVRZDtFbEl6UVU7SUFDSTtJQUNBO0VrSTJRZDtFbEk3UVU7SUFDSTtJQUNBO0VrSStRZDtFbElqUlU7SUFDSTtJQUNBO0VrSW1SZDtFbEk5UUU7SUFDSTtFa0lnUk47QUFDRjtBbEkzUVE7RUFESjtJQUVRO0VrSThRVjtBQUNGOztBakluVEE7O0VBQUE7QUNBQTs7RUFBQTtBZ0k2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Q3RKNzFFZ0I7RXNKODFFaEIsYy9IbjVFUztFK0hvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBWUk7RUFDSSx5Qi9IbnRIZTtFK0hvdEhmO0VBQ0E7RUFDQTtFQUNBO0VBQ0Esa0I5RnZ1SGdCO0E4RjBZeEI7QXhJMVdJO0V3SWlzSEE7SUFTUTtFQTUxR1Y7QUFDRjtBQTgxR1E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBQTUxR1o7QUErMUdRO0VBRUk7RUFDQTtFQUNBO0FBOTFHWjtBeEkxWEk7RXdJb3RISTtJQU9RO0lBQ0E7SUFDQTtFQTcxR2Q7QUFDRjtBQWcyR1E7RUFDSTtFQUNBO0VBQ0E7QUE5MUdaO0F4SXRZSTtFd0lpdUhJO0lBTVE7RUE3MUdkO0FBQ0Y7QUFnMkdRO0VBQ0k7RUFDQTtFQUNBO0FBOTFHWjtBeEloWkk7RXdJMnVISTtJQU1RO0VBNzFHZDtBQUNGO0FBZzJHUTtFQUNJO0FBOTFHWjtBQWkyR1E7RUFDSTtBQS8xR1o7QUFrMkdRO0VBQ0k7QUFoMkdaO0FBbTJHUTs7RUFFSTtFQUNBO0VBQ0E7RUFDQSxjL0g1eEhXO0UrSDZ4SFgsa0I5RnZ5SFk7RThGd3lIWjtFQUNBO1VBQUE7QUFqMkdaO0F4SXhhSTtFd0lpd0hJOztJQVdRO0lBQ0E7RUEvMUdkO0FBQ0Y7QUFrMkdRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7QUFoMkdaO0F4SXJiSTtFd0lpeEhJO0lBT1E7RUEvMUdkO0FBQ0Y7QUFrMkdROztFQUVJLGtCOUY5ekhZO0U4Rit6SFo7RUFDQTtVQUFBO0VBQ0E7RUFDQSxnQi9IN3pIVTtBK0g2ZHRCO0F4SWxjSTtFd0k0eEhJOztJQVNRO0VBOTFHZDtBQUNGO0FBazJHSTtFQUNJO0VBQ0E7RUFDQTtBQWgyR1I7QUFrMkdRO0VBQ0k7QUFoMkdaO0FBbzJHSTtFQUNJO0VBQ0E7RUFDQTtBQWwyR1I7QXhJcmRJO0V3SW96SEE7SUFNUTtJQUNBO0VBajJHVjtBQUNGO0FBbzJHSTtFQUNJO0FBbDJHUjtBQW8yR1E7RUFDSTtBQWwyR1o7QUFxMkdRO0VBQ0k7RUFDQTtBQW4yR1o7QUFzMkdRO0VBQ0k7RUFDQTtFQUNBO0FBcDJHWjtBeEkxZUk7RXdJMjBISTtJQU1RO0lBQ0E7RUFuMkdkO0FBQ0Y7QUF1MkdJO0VBQ0k7QUFyMkdSO0FBdzJHSTtFQUNJLDBDL0hyMUhnQjtFK0hzMUhoQixrQjlGNzNIZ0I7RThGODNIaEI7RUFDQTtFQUNBLGMvSHQzSGU7RStIdTNIZjtBQXQyR1IsQzs7OztBdEozaEJBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBcUk4Tko7O0FySTNOQTtFQUNJO0FxSThOSjs7QW5JcE9JO0VBREo7SUFFUTtFbUl3T047QUFDRjs7QW5Jck9BO0VBQ0k7RUFDQTtFQUNBO0FtSXdPSjtBbkl0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFbUl5T047QUFDRjs7QW5JdE9BO0VBR1k7SUFDSTtJQUNBO0VtSXVPZDtFbkl6T1U7SUFDSTtJQUNBO0VtSTJPZDtFbkk3T1U7SUFDSTtJQUNBO0VtSStPZDtFbklqUFU7SUFDSTtJQUNBO0VtSW1QZDtFbklyUFU7SUFDSTtJQUNBO0VtSXVQZDtFbkl6UFU7SUFDSTtJQUNBO0VtSTJQZDtFbkk3UFU7SUFDSTtJQUNBO0VtSStQZDtFbklqUVU7SUFDSTtJQUNBO0VtSW1RZDtFbklyUVU7SUFDSTtJQUNBO0VtSXVRZDtFbkl6UVU7SUFDSTtJQUNBO0VtSTJRZDtFbkk3UVU7SUFDSTtJQUNBO0VtSStRZDtFbklqUlU7SUFDSTtJQUNBO0VtSW1SZDtFbkk5UUU7SUFDSTtFbUlnUk47QUFDRjtBbkkzUVE7RUFESjtJQUVRO0VtSThRVjtBQUNGOztBbEluVEE7O0VBQUE7QUNBQTs7RUFBQTtBaUk2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Q3ZKNzFFZ0I7RXVKODFFaEIsY2hJbjVFUztFZ0lvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBWUk7RUFDSSx5QmhJbnRIZTtFZ0lvdEhmO0VBQ0E7RUFDQTtBQTcxR1I7QXpJeFdJO0V5SWlzSEE7SUFPUTtFQTUxR1Y7QUFDRjtBQTgxR1E7RUFDSTtFQUFBO0VBQUE7QUE1MUdaO0FBKzFHUTtFQUNJO01BQUE7VUFBQTtFQUNBO0VBQ0EsY2hJdnVIVztFZ0l5dUhYO0VBQ0E7QUE5MUdaO0FBZzJHWTtFQVJKO0lBU1E7RUE3MUdkO0FBQ0Y7QUFnMkdRO0VBQ0k7TUFBQTtBQTkxR1o7QUFpMkdRO0VBQ0k7RUFDQTtFQUNBLGNoSXp2SFc7QWdJMFp2QjtBQWsyR1E7RUFDSTtFQUNBO0FBaDJHWjtBQW0yR1E7RUFDSSxjaElqd0hXO0FnSWdhdkIsQzs7OztBdkozYUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0FzSThOSjs7QXRJM05BO0VBQ0k7QXNJOE5KOztBcElwT0k7RUFESjtJQUVRO0VvSXdPTjtBQUNGOztBcElyT0E7RUFDSTtFQUNBO0VBQ0E7QW9Jd09KO0FwSXRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0VvSXlPTjtBQUNGOztBcEl0T0E7RUFHWTtJQUNJO0lBQ0E7RW9JdU9kO0VwSXpPVTtJQUNJO0lBQ0E7RW9JMk9kO0VwSTdPVTtJQUNJO0lBQ0E7RW9JK09kO0VwSWpQVTtJQUNJO0lBQ0E7RW9JbVBkO0VwSXJQVTtJQUNJO0lBQ0E7RW9JdVBkO0VwSXpQVTtJQUNJO0lBQ0E7RW9JMlBkO0VwSTdQVTtJQUNJO0lBQ0E7RW9JK1BkO0VwSWpRVTtJQUNJO0lBQ0E7RW9JbVFkO0VwSXJRVTtJQUNJO0lBQ0E7RW9JdVFkO0VwSXpRVTtJQUNJO0lBQ0E7RW9JMlFkO0VwSTdRVTtJQUNJO0lBQ0E7RW9JK1FkO0VwSWpSVTtJQUNJO0lBQ0E7RW9JbVJkO0VwSTlRRTtJQUNJO0VvSWdSTjtBQUNGO0FwSTNRUTtFQURKO0lBRVE7RW9JOFFWO0FBQ0Y7O0FuSW5UQTs7RUFBQTtBQ0FBOztFQUFBO0FrSTZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDeEo3MUVnQjtFd0o4MUVoQixjakluNUVTO0VpSW81RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFZSTtFQUNJO0VBQUE7RUFBQTtFQUNBO01BQUE7RUFDQTtFQUNBO0FBNzFHUjtBMUl4V0k7RTBJaXNIQTtJQU9RO1FBQUE7WUFBQTtFQTUxR1Y7QUFDRjtBQTgxR1E7RUFDSTtFQUNBO0VBQ0E7RUFBQTtFQUFBO0FBNTFHWjtBMUlsWEk7RTBJMnNISTtJQU1RO0VBMzFHZDtBQUNGO0ExSXZYSTtFMElvdEhRO0lBRVE7RUEzMUdsQjtBQUNGLEM7Ozs7QXhKNVpBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBdUk4Tko7O0F2STNOQTtFQUNJO0F1SThOSjs7QXJJcE9JO0VBREo7SUFFUTtFcUl3T047QUFDRjs7QXJJck9BO0VBQ0k7RUFDQTtFQUNBO0FxSXdPSjtBckl0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFcUl5T047QUFDRjs7QXJJdE9BO0VBR1k7SUFDSTtJQUNBO0VxSXVPZDtFckl6T1U7SUFDSTtJQUNBO0VxSTJPZDtFckk3T1U7SUFDSTtJQUNBO0VxSStPZDtFcklqUFU7SUFDSTtJQUNBO0VxSW1QZDtFcklyUFU7SUFDSTtJQUNBO0VxSXVQZDtFckl6UFU7SUFDSTtJQUNBO0VxSTJQZDtFckk3UFU7SUFDSTtJQUNBO0VxSStQZDtFcklqUVU7SUFDSTtJQUNBO0VxSW1RZDtFcklyUVU7SUFDSTtJQUNBO0VxSXVRZDtFckl6UVU7SUFDSTtJQUNBO0VxSTJRZDtFckk3UVU7SUFDSTtJQUNBO0VxSStRZDtFcklqUlU7SUFDSTtJQUNBO0VxSW1SZDtFckk5UUU7SUFDSTtFcUlnUk47QUFDRjtBckkzUVE7RUFESjtJQUVRO0VxSThRVjtBQUNGOztBcEluVEE7O0VBQUE7QUNBQTs7RUFBQTtBbUk2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Q3pKNzFFZ0I7RXlKODFFaEIsY2xJbjVFUztFa0lvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBYVE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBQTkxR1o7QTNJalZJO0UySWtySEk7SUFFUTtFQS8xR2Q7QUFDRjtBQWkyR1k7RUFDSTtFQUNBO0FBLzFHaEI7QUFrMkdZO0VBQ0k7QUFoMkdoQjtBQW8yR1E7RUFDSTtBQWwyR1osQzs7OztBekp2WkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0F3SThOSjs7QXhJM05BO0VBQ0k7QXdJOE5KOztBdElwT0k7RUFESjtJQUVRO0VzSXdPTjtBQUNGOztBdElyT0E7RUFDSTtFQUNBO0VBQ0E7QXNJd09KO0F0SXRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0VzSXlPTjtBQUNGOztBdEl0T0E7RUFHWTtJQUNJO0lBQ0E7RXNJdU9kO0V0SXpPVTtJQUNJO0lBQ0E7RXNJMk9kO0V0STdPVTtJQUNJO0lBQ0E7RXNJK09kO0V0SWpQVTtJQUNJO0lBQ0E7RXNJbVBkO0V0SXJQVTtJQUNJO0lBQ0E7RXNJdVBkO0V0SXpQVTtJQUNJO0lBQ0E7RXNJMlBkO0V0STdQVTtJQUNJO0lBQ0E7RXNJK1BkO0V0SWpRVTtJQUNJO0lBQ0E7RXNJbVFkO0V0SXJRVTtJQUNJO0lBQ0E7RXNJdVFkO0V0SXpRVTtJQUNJO0lBQ0E7RXNJMlFkO0V0STdRVTtJQUNJO0lBQ0E7RXNJK1FkO0V0SWpSVTtJQUNJO0lBQ0E7RXNJbVJkO0V0STlRRTtJQUNJO0VzSWdSTjtBQUNGO0F0STNRUTtFQURKO0lBRVE7RXNJOFFWO0FBQ0Y7O0FySW5UQTs7RUFBQTtBQ0FBOztFQUFBO0FvSTZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDMUo3MUVnQjtFMEo4MUVoQixjbkluNUVTO0VtSW81RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFhUTtFQUNJO0FBOTFHWixDOzs7O0ExSnJZQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QXlJOE5KOztBekkzTkE7RUFDSTtBeUk4Tko7O0F2SXBPSTtFQURKO0lBRVE7RXVJd09OO0FBQ0Y7O0F2SXJPQTtFQUNJO0VBQ0E7RUFDQTtBdUl3T0o7QXZJdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RXVJeU9OO0FBQ0Y7O0F2SXRPQTtFQUdZO0lBQ0k7SUFDQTtFdUl1T2Q7RXZJek9VO0lBQ0k7SUFDQTtFdUkyT2Q7RXZJN09VO0lBQ0k7SUFDQTtFdUkrT2Q7RXZJalBVO0lBQ0k7SUFDQTtFdUltUGQ7RXZJclBVO0lBQ0k7SUFDQTtFdUl1UGQ7RXZJelBVO0lBQ0k7SUFDQTtFdUkyUGQ7RXZJN1BVO0lBQ0k7SUFDQTtFdUkrUGQ7RXZJalFVO0lBQ0k7SUFDQTtFdUltUWQ7RXZJclFVO0lBQ0k7SUFDQTtFdUl1UWQ7RXZJelFVO0lBQ0k7SUFDQTtFdUkyUWQ7RXZJN1FVO0lBQ0k7SUFDQTtFdUkrUWQ7RXZJalJVO0lBQ0k7SUFDQTtFdUltUmQ7RXZJOVFFO0lBQ0k7RXVJZ1JOO0FBQ0Y7QXZJM1FRO0VBREo7SUFFUTtFdUk4UVY7QUFDRjs7QXRJblRBOztFQUFBO0FDQUE7O0VBQUE7QXFJNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0MzSjcxRWdCO0UySjgxRWhCLGNwSW41RVM7RW9JbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQVlJO0VBQ0k7QUE3MUdSO0FBKzFHUTtFQUNJO0VBQ0E7QUE3MUdaO0FBZzJHUTtFQUVJO0FBLzFHWjtBQWsyR1E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBaDJHWjtBQW8yR1k7RUFDSSxjcEl4dEhRO0VvSXl0SFI7RUFDQTtBQWwyR2hCO0FBbzJHZ0I7RUFDSSxjcElwdUhFO0FvSWtZdEI7QUFxMkdnQjtFQUNJLGNwSXB1SEs7QW9JaVl6QixDOzs7O0EzSjlaQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QTBJOE5KOztBMUkzTkE7RUFDSTtBMEk4Tko7O0F4SXBPSTtFQURKO0lBRVE7RXdJd09OO0FBQ0Y7O0F4SXJPQTtFQUNJO0VBQ0E7RUFDQTtBd0l3T0o7QXhJdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RXdJeU9OO0FBQ0Y7O0F4SXRPQTtFQUdZO0lBQ0k7SUFDQTtFd0l1T2Q7RXhJek9VO0lBQ0k7SUFDQTtFd0kyT2Q7RXhJN09VO0lBQ0k7SUFDQTtFd0krT2Q7RXhJalBVO0lBQ0k7SUFDQTtFd0ltUGQ7RXhJclBVO0lBQ0k7SUFDQTtFd0l1UGQ7RXhJelBVO0lBQ0k7SUFDQTtFd0kyUGQ7RXhJN1BVO0lBQ0k7SUFDQTtFd0krUGQ7RXhJalFVO0lBQ0k7SUFDQTtFd0ltUWQ7RXhJclFVO0lBQ0k7SUFDQTtFd0l1UWQ7RXhJelFVO0lBQ0k7SUFDQTtFd0kyUWQ7RXhJN1FVO0lBQ0k7SUFDQTtFd0krUWQ7RXhJalJVO0lBQ0k7SUFDQTtFd0ltUmQ7RXhJOVFFO0lBQ0k7RXdJZ1JOO0FBQ0Y7QXhJM1FRO0VBREo7SUFFUTtFd0k4UVY7QUFDRjs7QXZJblRBOztFQUFBO0FDQUE7O0VBQUE7QXNJNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0M1SjcxRWdCO0U0SjgxRWhCLGNySW41RVM7RXFJbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQVlJO0VBQ0k7RUFDQTtFQUNBO0FBNzFHUjtBOUl2V0k7RThJaXNIQTtJQU1RO0lBQ0E7RUE1MUdWO0FBQ0Y7QUE4MUdRO0VBQ0k7QUE1MUdaO0FBKzFHUTtFQUNJO0FBNzFHWjtBOUluWEk7RThJK3NISTtJQUlRO0VBNTFHZDtBQUNGO0FBKzFHUTtFQUNJO0FBNzFHWjtBQSsxR1k7RUFDSTtBQTcxR2hCO0E5SXZXSTtFOElnc0hJO0lBUVE7RUE3MUdkO0FBQ0Y7QUFnMkdRO0VBQ0k7RUFDQTtBQTkxR1o7QTlJdllJO0U4SW11SEk7SUFLUTtJQUNBO0VBNzFHZDtBQUNGO0FBZzJHUTtFQUNJLFdySXp3SFU7QXFJMmF0QjtBQWkyR1E7RUFDSTtFQUNBLHlCcklueEhTO0VxSW94SFQ7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBLzFHWjtBOUkxWkk7RThJaXZISTtJQVdRO0VBOTFHZDtBQUNGO0FBZzJHWTtFQUNJO0VBQ0E7QUE5MUdoQjtBOUluYUk7RThJK3ZIUTtJQUtRO0lBQ0E7RUE3MUdsQjtBQUNGO0FBaTJHUTtFQUVJLFdySXZ5SFU7QXFJdWN0QjtBQW0yR1E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBQWoyR1o7QTlJbGJJO0U4SSt3SEk7SUFPUTtJQUNBO0lBQ0E7RUFoMkdkO0FBQ0Y7QUFtMkdRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7QUFqMkdaO0E5SS9iSTtFOEk0eEhJO0lBT1E7SUFDQTtFQWgyR2Q7QUFDRjtBQWsyR1k7RUFDSSw4QjFHeDBITTtFMEd5MEhOO0FBaDJHaEI7QTlJemNJO0U4SXV5SFE7SUFLUTtJQUNBO0VBLzFHbEI7QUFDRjtBQW0yR1E7RUFDSTtFQUNBO0VBQ0EsV3JJaDFIVTtFcUlpMUhWO0FBajJHWjtBOUlyZEk7RThJa3pISTtJQU9RO0lBQ0E7SUFDQTtFQWgyR2Q7QUFDRjtBQW0yR1E7RUFDSTtFQUNBO0FBajJHWjtBOUloZUk7RThJK3pISTtJQUtRO0lBQ0E7RUFoMkdkO0FBQ0YsQzs7OztBNUp0Z0JBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBMkk4Tko7O0EzSTNOQTtFQUNJO0EySThOSjs7QXpJcE9JO0VBREo7SUFFUTtFeUl3T047QUFDRjs7QXpJck9BO0VBQ0k7RUFDQTtFQUNBO0F5SXdPSjtBekl0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFeUl5T047QUFDRjs7QXpJdE9BO0VBR1k7SUFDSTtJQUNBO0V5SXVPZDtFekl6T1U7SUFDSTtJQUNBO0V5STJPZDtFekk3T1U7SUFDSTtJQUNBO0V5SStPZDtFeklqUFU7SUFDSTtJQUNBO0V5SW1QZDtFeklyUFU7SUFDSTtJQUNBO0V5SXVQZDtFekl6UFU7SUFDSTtJQUNBO0V5STJQZDtFekk3UFU7SUFDSTtJQUNBO0V5SStQZDtFeklqUVU7SUFDSTtJQUNBO0V5SW1RZDtFeklyUVU7SUFDSTtJQUNBO0V5SXVRZDtFekl6UVU7SUFDSTtJQUNBO0V5STJRZDtFekk3UVU7SUFDSTtJQUNBO0V5SStRZDtFeklqUlU7SUFDSTtJQUNBO0V5SW1SZDtFekk5UUU7SUFDSTtFeUlnUk47QUFDRjtBekkzUVE7RUFESjtJQUVRO0V5SThRVjtBQUNGOztBeEluVEE7O0VBQUE7QUNBQTs7RUFBQTtBdUk2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3QzdKNzFFZ0I7RTZKODFFaEIsY3RJbjVFUztFc0lvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBY1E7RUFDSTtFQUFBO0VBQUE7RUFDQTtNQUFBO1VBQUE7RUFDQTtNQUFBO1VBQUE7RUFDQTtFQUNBO0VBRUE7TUFBQTtBQWgyR1o7QUFtMkdRO0VBQ0k7RUFDQTtBQWoyR1o7QS9JdlZJO0UrSXNySEk7SUFJUTtFQS8xR2Q7QUFDRixDOzs7O0E3Sm5aQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QTRJOE5KOztBNUkzTkE7RUFDSTtBNEk4Tko7O0ExSXBPSTtFQURKO0lBRVE7RTBJd09OO0FBQ0Y7O0ExSXJPQTtFQUNJO0VBQ0E7RUFDQTtBMEl3T0o7QTFJdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RTBJeU9OO0FBQ0Y7O0ExSXRPQTtFQUdZO0lBQ0k7SUFDQTtFMEl1T2Q7RTFJek9VO0lBQ0k7SUFDQTtFMEkyT2Q7RTFJN09VO0lBQ0k7SUFDQTtFMEkrT2Q7RTFJalBVO0lBQ0k7SUFDQTtFMEltUGQ7RTFJclBVO0lBQ0k7SUFDQTtFMEl1UGQ7RTFJelBVO0lBQ0k7SUFDQTtFMEkyUGQ7RTFJN1BVO0lBQ0k7SUFDQTtFMEkrUGQ7RTFJalFVO0lBQ0k7SUFDQTtFMEltUWQ7RTFJclFVO0lBQ0k7SUFDQTtFMEl1UWQ7RTFJelFVO0lBQ0k7SUFDQTtFMEkyUWQ7RTFJN1FVO0lBQ0k7SUFDQTtFMEkrUWQ7RTFJalJVO0lBQ0k7SUFDQTtFMEltUmQ7RTFJOVFFO0lBQ0k7RTBJZ1JOO0FBQ0Y7QTFJM1FRO0VBREo7SUFFUTtFMEk4UVY7QUFDRjs7QXpJblRBOztFQUFBO0FDQUE7O0VBQUE7QXdJNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0M5SjcxRWdCO0U4SjgxRWhCLGN2SW41RVM7RXVJbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQVlJO0VBQ0k7QUE3MUdSO0FBKzFHUTtFQUNJO0VBQUE7RUFBQTtFQUNBO01BQUE7VUFBQTtBQTcxR1o7QWhKeldJO0VnSm9zSEk7SUFLUTtFQTUxR2Q7QUFDRjtBQTgxR1k7RUFDSTtFQUNBO0FBNTFHaEI7QWhKbFhJO0VnSjRzSFE7SUFLUTtJQUNBO0VBMzFHbEI7QUFDRjtBQSsxR1E7RUFFSTtFQUNBO0VBQ0E7QUE5MUdaO0FBaTJHUTtFQUNJLGN2SS92SFM7QXVJZ2FyQjtBQWkyR1k7RUFDSTtFQUNBO0FBLzFHaEI7QUFtMkdRO0VBQ0k7QUFqMkdaO0FoSmhYSTtFZ0pndEhJO0lBR1E7RUEvMUdkO0FBQ0YsQzs7OztBOUo1YUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0E2SThOSjs7QTdJM05BO0VBQ0k7QTZJOE5KOztBM0lwT0k7RUFESjtJQUVRO0UySXdPTjtBQUNGOztBM0lyT0E7RUFDSTtFQUNBO0VBQ0E7QTJJd09KO0EzSXRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0UySXlPTjtBQUNGOztBM0l0T0E7RUFHWTtJQUNJO0lBQ0E7RTJJdU9kO0UzSXpPVTtJQUNJO0lBQ0E7RTJJMk9kO0UzSTdPVTtJQUNJO0lBQ0E7RTJJK09kO0UzSWpQVTtJQUNJO0lBQ0E7RTJJbVBkO0UzSXJQVTtJQUNJO0lBQ0E7RTJJdVBkO0UzSXpQVTtJQUNJO0lBQ0E7RTJJMlBkO0UzSTdQVTtJQUNJO0lBQ0E7RTJJK1BkO0UzSWpRVTtJQUNJO0lBQ0E7RTJJbVFkO0UzSXJRVTtJQUNJO0lBQ0E7RTJJdVFkO0UzSXpRVTtJQUNJO0lBQ0E7RTJJMlFkO0UzSTdRVTtJQUNJO0lBQ0E7RTJJK1FkO0UzSWpSVTtJQUNJO0lBQ0E7RTJJbVJkO0UzSTlRRTtJQUNJO0UySWdSTjtBQUNGO0EzSTNRUTtFQURKO0lBRVE7RTJJOFFWO0FBQ0Y7O0ExSW5UQTs7RUFBQTtBQ0FBOztFQUFBO0F5STZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDL0o3MUVnQjtFK0o4MUVoQixjeEluNUVTO0V3SW81RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFjWTtFQUNJO0VBQ0E7QUEvMUdoQjtBQWkyR2dCO0VBQ0k7QUEvMUdwQjtBQW0yR1k7RUFDSTtBQWoyR2hCO0FBcTJHUTtFQUNJO0VBQ0E7RUFDQTtBQW4yR1o7QWpKalhJO0VpSml0SEk7SUFNUTtFQWwyR2Q7QUFDRjtBQW8yR1k7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtVQUFBO0FBbDJHaEI7QWpKL1hJO0VpSjB0SFE7SUFVUTtFQWoyR2xCO0FBQ0Y7QUFvMkdZO0VBQ0k7VUFBQTtBQWwyR2hCO0FBczJHUTtFQUNJO0VBQ0E7RUFDQTtBQXAyR1o7QUFzMkdZO0VBQ0ksbUJ4SXB3SE87QXdJZ2F2QjtBakovWUk7RWlKNnVISTtJQVVRO0VBcDJHZDtBQUNGLEM7Ozs7QS9KcGJBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBOEk4Tko7O0E5STNOQTtFQUNJO0E4SThOSjs7QTVJcE9JO0VBREo7SUFFUTtFNEl3T047QUFDRjs7QTVJck9BO0VBQ0k7RUFDQTtFQUNBO0E0SXdPSjtBNUl0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFNEl5T047QUFDRjs7QTVJdE9BO0VBR1k7SUFDSTtJQUNBO0U0SXVPZDtFNUl6T1U7SUFDSTtJQUNBO0U0STJPZDtFNUk3T1U7SUFDSTtJQUNBO0U0SStPZDtFNUlqUFU7SUFDSTtJQUNBO0U0SW1QZDtFNUlyUFU7SUFDSTtJQUNBO0U0SXVQZDtFNUl6UFU7SUFDSTtJQUNBO0U0STJQZDtFNUk3UFU7SUFDSTtJQUNBO0U0SStQZDtFNUlqUVU7SUFDSTtJQUNBO0U0SW1RZDtFNUlyUVU7SUFDSTtJQUNBO0U0SXVRZDtFNUl6UVU7SUFDSTtJQUNBO0U0STJRZDtFNUk3UVU7SUFDSTtJQUNBO0U0SStRZDtFNUlqUlU7SUFDSTtJQUNBO0U0SW1SZDtFNUk5UUU7SUFDSTtFNElnUk47QUFDRjtBNUkzUVE7RUFESjtJQUVRO0U0SThRVjtBQUNGOztBM0luVEE7O0VBQUE7QUNBQTs7RUFBQTtBMEk2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Q2hLNzFFZ0I7RWdLODFFaEIsY3pJbjVFUztFeUlvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBWUk7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUFBO0VBQUE7RUFDQTtNQUFBO0VBQ0E7TUFBQTtVQUFBO0VBQ0E7TUFBQTtVQUFBO0FBNzFHUjtBQSsxR1E7RUFDSTtFQUNBO0FBNzFHWjtBQWcyR1E7RUFDSSxXekk5dUhVO0F5SWdadEI7QUFnMkdZO0VBRUksV3pJbHZITTtBeUltWnRCLEM7Ozs7QWhLeFpBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBK0k4Tko7O0EvSTNOQTtFQUNJO0ErSThOSjs7QTdJcE9JO0VBREo7SUFFUTtFNkl3T047QUFDRjs7QTdJck9BO0VBQ0k7RUFDQTtFQUNBO0E2SXdPSjtBN0l0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFNkl5T047QUFDRjs7QTdJdE9BO0VBR1k7SUFDSTtJQUNBO0U2SXVPZDtFN0l6T1U7SUFDSTtJQUNBO0U2STJPZDtFN0k3T1U7SUFDSTtJQUNBO0U2SStPZDtFN0lqUFU7SUFDSTtJQUNBO0U2SW1QZDtFN0lyUFU7SUFDSTtJQUNBO0U2SXVQZDtFN0l6UFU7SUFDSTtJQUNBO0U2STJQZDtFN0k3UFU7SUFDSTtJQUNBO0U2SStQZDtFN0lqUVU7SUFDSTtJQUNBO0U2SW1RZDtFN0lyUVU7SUFDSTtJQUNBO0U2SXVRZDtFN0l6UVU7SUFDSTtJQUNBO0U2STJRZDtFN0k3UVU7SUFDSTtJQUNBO0U2SStRZDtFN0lqUlU7SUFDSTtJQUNBO0U2SW1SZDtFN0k5UUU7SUFDSTtFNklnUk47QUFDRjtBN0kzUVE7RUFESjtJQUVRO0U2SThRVjtBQUNGOztBNUluVEE7O0VBQUE7QUNBQTs7RUFBQTtBMkk2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Q2pLNzFFZ0I7RWlLODFFaEIsYzFJbjVFUztFMElvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBWUk7RUFDSTtFQUNBO0VBQ0E7QUE3MUdSO0FBKzFHUTtFQUNJLGtCekd2dUhZO0V5R3d1SFo7RUFDQSxjMUk5dEhXO0UwSSt0SFgsZ0IxSXJ1SFU7RTBJc3VIVjtFQUNBO0VBQ0E7S0FBQTtVQUFBO0FBNzFHWjtBbkpoWEk7RW1Kc3NISTtJQVVRO0lBQ0E7RUE1MUdkO0FBQ0Y7QUErMUdRO0VBQ0k7RUFDQSxVckd2dkhTO0VxR3d2SFQ7RUFDQTtFQUNBO0VBQ0E7RUFDQTtVQUFBO0VBQ0E7QUE3MUdaO0FuSmhZSTtFbUpxdEhJO0lBV1E7RUE1MUdkO0FBQ0Y7QUFnMkdZO0VBQ0k7RUFDQTtBQTkxR2hCO0FuSnpZSTtFbUpxdUhRO0lBS1E7SUFDQTtFQTcxR2xCO0FBQ0Y7QUFpMkdRO0VBQ0k7RUFDQTtBQS8xR1o7QW5KblpJO0VtSmd2SEk7SUFLUTtFQTkxR2Q7QUFDRjtBQWcyR1k7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBLGMxSTd3SE87RTBJOHdIUDtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBOTFHaEI7QW5KcGFJO0VtSnd2SFE7SUFhUTtJQUNBO0lBQ0E7SUFDQSxrQ2pLbnZIUTtJaUtvdkhSO0lBQ0EsYzFJL3hIRztJMElneUhIO0lBQ0E7SUFDQTtFQTcxR2xCO0FBQ0Y7QUFnMkdZO0VBQ0k7RUFDQTtFQUNBO0FBOTFHaEI7QW5KdGJJO0VtSml4SFE7SUFNUTtJQUNBO0lBQ0E7SUFDQTtZQUFBO0VBNzFHbEI7QUFDRjtBQWsyR1k7RUFDSTtBQWgyR2hCO0FBcTJHWTs7RUFFSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLGMxSS96SE87RTBJZzBIUDtBQW4yR2hCO0FBcTJHWTtFQUNJO0VBQ0E7VUFBQTtBQW4yR2hCO0FBeTJHWTtFQUNJO0VBQ0E7RUFDQTtBQXYyR2hCO0FuSnRkSTtFbUowekhRO0lBTVE7SUFDQTtFQXQyR2xCO0FBQ0Y7QW5KNWRJO0VtSnEwSFE7SUFFUTtJQUNBO0VBdjJHbEI7QUFDRjtBQTIyR1E7RUFDSTtBQXoyR1o7QW5KcmVJO0VtSjYwSEk7SUFJUTtFQXgyR2Q7QUFDRjtBQTAyR1k7RUFDSTtBQXgyR2hCO0FuSjdlSTtFbUpvMUhRO0lBSVE7RUF2MkdsQjtBQUNGO0FBMjJHUTtFQUNJO0FBejJHWjtBQTIyR1k7RUFDSTtBQXoyR2hCO0FBNjJHUTtFQUNJO0FBMzJHWjtBQTgyR1E7RUFDSTtBQTUyR1o7QW5KOWZJO0VtSnkySEk7SUFJUTtJQUNBO0VBMzJHZDtBQUNGO0FBKzJHWTs7RUFFSSxtQjFJdDRITztBMEl5aEJ2QjtBbkp4Z0JJO0VtSm0zSFE7O0lBS1EsZ0IxSW41SEU7RTBJd2lCcEI7QUFDRjtBQTgyR1k7RUFDSTtFQUNBO0VBQ0E7QUE1MkdoQjtBQWczR1E7RUFDSTtBQTkyR1o7QUFnM0dZO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7QUE5MkdoQjtBQWkzR1k7RUFDSTtFQUNBO0VBQ0E7VUFBQTtBQS8yR2hCO0FBazNHWTtFQUNJO0FBaDNHaEI7QUFtM0dvQjtFQUNJO0FBajNHeEI7QUF5M0dZO0VBQ0k7RUFDQTtFQUNBLGMxSW43SE87RTBJbzdIUDtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBdjNHaEI7O0FBaTRHUTtFQUNJO0VBQ0Esa0J6R3A5SFk7RXlHcTlIWjtFQUNBLGMxSTM4SFc7RTBJNDhIWCxnQjFJbDlIVTtFMEltOUhWO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUE5M0daO0FBaTRHUTtFQUNJO0FBLzNHWjtBQWs0R1E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFoNEdaO0FBbTRHUTtFQUNJO1VBQUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQWo0R1o7QUFvNEdnQjtFQUNJO0VBQ0E7RUFDQSxjMUk3K0hHO0UwSTgrSEg7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0FBbjRHcEI7QUFzNEdnQjtFQUNJO0VBQ0E7RUFDQTtVQUFBO0FBcDRHcEI7QUF1NEdnQjtFQUNJO0VBQ0E7QUFyNEdwQjtBQXc0R3dCO0VBQ0k7QUF0NEc1QjtBQTY0R2dCO0VBQ0k7RUFDQTtFQUNBO0FBMzRHcEI7QUE4NEdnQjtFQUNJO0FBNTRHcEI7QUFpNUdnQjtFQUNJO0VBQ0E7QUEvNEdwQjtBQW81R2dCO0VBQ0ksbUIxSS9oSUc7RTBJZ2lJSDtBQWw1R3BCO0FBdzVHZ0I7RUFDSTtBQXQ1R3BCO0FBMjVHUTtFQUNJO0VBQ0EsYXJHempJVTtFcUcwaklWO1VBQUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLGtCekdua0lZO0V5R29rSVosZ0IxSS9qSVU7RTBJZ2tJVjtVQUFBO0VBQ0E7QUF6NUdaO0FBNDVHUTtFQUNJO0FBMTVHWjtBQTY1R1E7RUFDSTtBQTM1R1o7QUE4NUdRO0VBQ0ksYzFJeGtJVztFMEl5a0lYO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUE1NUdaO0FBODVHWTtFQUNJO0FBNTVHaEI7QUErNUdZO0VBQ0k7RUFDQTtBQTc1R2hCO0FBODVHZ0I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7VUFBQTtBQTU1R3BCO0FBZzZHWTtFQUNJO0VBQ0EsYzFJeG1JTztBMEkwc0J2QjtBQSs1R2dCO0VBQ0k7RUFDQSxjMUkxbUlHO0EwSTZzQnZCO0FBODVHb0I7RUFDSSxxQjFJNW1JRDtBMElndEJ2QixDOzs7O0FqSzN0QkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0FnSjhOSjs7QWhKM05BO0VBQ0k7QWdKOE5KOztBOUlwT0k7RUFESjtJQUVRO0U4SXdPTjtBQUNGOztBOUlyT0E7RUFDSTtFQUNBO0VBQ0E7QThJd09KO0E5SXRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0U4SXlPTjtBQUNGOztBOUl0T0E7RUFHWTtJQUNJO0lBQ0E7RThJdU9kO0U5SXpPVTtJQUNJO0lBQ0E7RThJMk9kO0U5STdPVTtJQUNJO0lBQ0E7RThJK09kO0U5SWpQVTtJQUNJO0lBQ0E7RThJbVBkO0U5SXJQVTtJQUNJO0lBQ0E7RThJdVBkO0U5SXpQVTtJQUNJO0lBQ0E7RThJMlBkO0U5STdQVTtJQUNJO0lBQ0E7RThJK1BkO0U5SWpRVTtJQUNJO0lBQ0E7RThJbVFkO0U5SXJRVTtJQUNJO0lBQ0E7RThJdVFkO0U5SXpRVTtJQUNJO0lBQ0E7RThJMlFkO0U5STdRVTtJQUNJO0lBQ0E7RThJK1FkO0U5SWpSVTtJQUNJO0lBQ0E7RThJbVJkO0U5STlRRTtJQUNJO0U4SWdSTjtBQUNGO0E5STNRUTtFQURKO0lBRVE7RThJOFFWO0FBQ0Y7O0E3SW5UQTs7RUFBQTtBQ0FBOztFQUFBO0E0STZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDbEs3MUVnQjtFa0s4MUVoQixjM0luNUVTO0UySW81RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFZSTtFQUNJO0VBQ0E7QUE3MUdSO0FwSnRXSTtFb0ppc0hBO0lBS1E7SUFDQTtFQTUxR1Y7QUFDRjtBQSsxR0k7RUFDSTtFQUNBLGMzSWx1SGU7QTJJcVl2QjtBQWcyR0k7RUFDSTtFQUNBO0FBOTFHUjtBQWcyR1E7RUFDSTtBQTkxR1osQzs7OztBbEt2WkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0FpSjhOSjs7QWpKM05BO0VBQ0k7QWlKOE5KOztBL0lwT0k7RUFESjtJQUVRO0UrSXdPTjtBQUNGOztBL0lyT0E7RUFDSTtFQUNBO0VBQ0E7QStJd09KO0EvSXRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0UrSXlPTjtBQUNGOztBL0l0T0E7RUFHWTtJQUNJO0lBQ0E7RStJdU9kO0UvSXpPVTtJQUNJO0lBQ0E7RStJMk9kO0UvSTdPVTtJQUNJO0lBQ0E7RStJK09kO0UvSWpQVTtJQUNJO0lBQ0E7RStJbVBkO0UvSXJQVTtJQUNJO0lBQ0E7RStJdVBkO0UvSXpQVTtJQUNJO0lBQ0E7RStJMlBkO0UvSTdQVTtJQUNJO0lBQ0E7RStJK1BkO0UvSWpRVTtJQUNJO0lBQ0E7RStJbVFkO0UvSXJRVTtJQUNJO0lBQ0E7RStJdVFkO0UvSXpRVTtJQUNJO0lBQ0E7RStJMlFkO0UvSTdRVTtJQUNJO0lBQ0E7RStJK1FkO0UvSWpSVTtJQUNJO0lBQ0E7RStJbVJkO0UvSTlRRTtJQUNJO0UrSWdSTjtBQUNGO0EvSTNRUTtFQURKO0lBRVE7RStJOFFWO0FBQ0Y7O0E5SW5UQTs7RUFBQTtBQ0FBOztFQUFBO0E2STZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDbks3MUVnQjtFbUs4MUVoQixjNUluNUVTO0U0SW81RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFjWTtFQUNJO0VBQ0E7QUEvMUdoQjtBQW0yR1k7RUFBSSxjNUk5dEhPO0E0SThYdkIsQzs7OztBbkt6WUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0FrSjhOSjs7QWxKM05BO0VBQ0k7QWtKOE5KOztBaEpwT0k7RUFESjtJQUVRO0VnSndPTjtBQUNGOztBaEpyT0E7RUFDSTtFQUNBO0VBQ0E7QWdKd09KO0FoSnRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0VnSnlPTjtBQUNGOztBaEp0T0E7RUFHWTtJQUNJO0lBQ0E7RWdKdU9kO0VoSnpPVTtJQUNJO0lBQ0E7RWdKMk9kO0VoSjdPVTtJQUNJO0lBQ0E7RWdKK09kO0VoSmpQVTtJQUNJO0lBQ0E7RWdKbVBkO0VoSnJQVTtJQUNJO0lBQ0E7RWdKdVBkO0VoSnpQVTtJQUNJO0lBQ0E7RWdKMlBkO0VoSjdQVTtJQUNJO0lBQ0E7RWdKK1BkO0VoSmpRVTtJQUNJO0lBQ0E7RWdKbVFkO0VoSnJRVTtJQUNJO0lBQ0E7RWdKdVFkO0VoSnpRVTtJQUNJO0lBQ0E7RWdKMlFkO0VoSjdRVTtJQUNJO0lBQ0E7RWdKK1FkO0VoSmpSVTtJQUNJO0lBQ0E7RWdKbVJkO0VoSjlRRTtJQUNJO0VnSmdSTjtBQUNGO0FoSjNRUTtFQURKO0lBRVE7RWdKOFFWO0FBQ0Y7O0EvSW5UQTs7RUFBQTtBQ0FBOztFQUFBO0E4STZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDcEs3MUVnQjtFb0s4MUVoQixjN0luNUVTO0U2SW81RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFZSTtFQUNJO0VBQ0E7QUE3MUdSO0FBaTJHUTtFQUNJLG9DN0k3ckhZO0U2SThySFosVzdJcHVIVTtFNklxdUhWO0VBQ0E7RUFDQTtFQUNBO0VBQ0Esa0I1Rzl1SFk7RTRHK3VIWjtFQUNBO0VBQ0E7RUFDQTtVQUFBO0VBQ0E7VUFBQTtFekpudUhSLHVEQUZpQjtFQUVqQiwrQ0FGaUI7RUFFakIsdUNBRmlCO0VBRWpCLDRFQUZpQjtBeUp1WXJCO0FBbTJHWTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBajJHaEI7QUFvMkdZO0VBQ0k7VUFBQTtBQWwyR2hCLEM7Ozs7QXBLamFBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBbUo4Tko7O0FuSjNOQTtFQUNJO0FtSjhOSjs7QWpKcE9JO0VBREo7SUFFUTtFaUp3T047QUFDRjs7QWpKck9BO0VBQ0k7RUFDQTtFQUNBO0FpSndPSjtBakp0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFaUp5T047QUFDRjs7QWpKdE9BO0VBR1k7SUFDSTtJQUNBO0VpSnVPZDtFakp6T1U7SUFDSTtJQUNBO0VpSjJPZDtFako3T1U7SUFDSTtJQUNBO0VpSitPZDtFakpqUFU7SUFDSTtJQUNBO0VpSm1QZDtFakpyUFU7SUFDSTtJQUNBO0VpSnVQZDtFakp6UFU7SUFDSTtJQUNBO0VpSjJQZDtFako3UFU7SUFDSTtJQUNBO0VpSitQZDtFakpqUVU7SUFDSTtJQUNBO0VpSm1RZDtFakpyUVU7SUFDSTtJQUNBO0VpSnVRZDtFakp6UVU7SUFDSTtJQUNBO0VpSjJRZDtFako3UVU7SUFDSTtJQUNBO0VpSitRZDtFakpqUlU7SUFDSTtJQUNBO0VpSm1SZDtFako5UUU7SUFDSTtFaUpnUk47QUFDRjtBakozUVE7RUFESjtJQUVRO0VpSjhRVjtBQUNGOztBaEpuVEE7O0VBQUE7QUNBQTs7RUFBQTtBK0k2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Q3JLNzFFZ0I7RXFLODFFaEIsYzlJbjVFUztFOElvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBWUk7RUFDSTtNQUFBO1VBQUE7RUFDQSxzQjlJOXRIYztFOEkrdEhkO0VBQ0E7RUFBQTtFQUFBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUE3MUdSO0FBKzFHUTtFQUNJO0VBQ0E7RUFDQTtBQTcxR1o7QUFnMkdRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7QUE5MUdaLEM7Ozs7QXJLdlpBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBb0o4Tko7O0FwSjNOQTtFQUNJO0FvSjhOSjs7QWxKcE9JO0VBREo7SUFFUTtFa0p3T047QUFDRjs7QWxKck9BO0VBQ0k7RUFDQTtFQUNBO0FrSndPSjtBbEp0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFa0p5T047QUFDRjs7QWxKdE9BO0VBR1k7SUFDSTtJQUNBO0VrSnVPZDtFbEp6T1U7SUFDSTtJQUNBO0VrSjJPZDtFbEo3T1U7SUFDSTtJQUNBO0VrSitPZDtFbEpqUFU7SUFDSTtJQUNBO0VrSm1QZDtFbEpyUFU7SUFDSTtJQUNBO0VrSnVQZDtFbEp6UFU7SUFDSTtJQUNBO0VrSjJQZDtFbEo3UFU7SUFDSTtJQUNBO0VrSitQZDtFbEpqUVU7SUFDSTtJQUNBO0VrSm1RZDtFbEpyUVU7SUFDSTtJQUNBO0VrSnVRZDtFbEp6UVU7SUFDSTtJQUNBO0VrSjJRZDtFbEo3UVU7SUFDSTtJQUNBO0VrSitRZDtFbEpqUlU7SUFDSTtJQUNBO0VrSm1SZDtFbEo5UUU7SUFDSTtFa0pnUk47QUFDRjtBbEozUVE7RUFESjtJQUVRO0VrSjhRVjtBQUNGOztBakpuVEE7O0VBQUE7QUNBQTs7RUFBQTtBZ0o2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Q3RLNzFFZ0I7RXNLODFFaEIsYy9JbjVFUztFK0lvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBY1E7RUFDSTtFQUNBO0VBQ0E7QUEvMUdaO0F4SnZXSTtFd0ptc0hJO0lBTVE7SUFDQTtFQTkxR2Q7QUFDRjtBQWsyR1E7RUFDSTtBQWgyR1o7QUFrMkdZO0VBQ0k7QUFoMkdoQixDOzs7O0F0S25aQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QXFKOE5KOztBckozTkE7RUFDSTtBcUo4Tko7O0FuSnBPSTtFQURKO0lBRVE7RW1Kd09OO0FBQ0Y7O0FuSnJPQTtFQUNJO0VBQ0E7RUFDQTtBbUp3T0o7QW5KdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RW1KeU9OO0FBQ0Y7O0FuSnRPQTtFQUdZO0lBQ0k7SUFDQTtFbUp1T2Q7RW5Kek9VO0lBQ0k7SUFDQTtFbUoyT2Q7RW5KN09VO0lBQ0k7SUFDQTtFbUorT2Q7RW5KalBVO0lBQ0k7SUFDQTtFbUptUGQ7RW5KclBVO0lBQ0k7SUFDQTtFbUp1UGQ7RW5KelBVO0lBQ0k7SUFDQTtFbUoyUGQ7RW5KN1BVO0lBQ0k7SUFDQTtFbUorUGQ7RW5KalFVO0lBQ0k7SUFDQTtFbUptUWQ7RW5KclFVO0lBQ0k7SUFDQTtFbUp1UWQ7RW5KelFVO0lBQ0k7SUFDQTtFbUoyUWQ7RW5KN1FVO0lBQ0k7SUFDQTtFbUorUWQ7RW5KalJVO0lBQ0k7SUFDQTtFbUptUmQ7RW5KOVFFO0lBQ0k7RW1KZ1JOO0FBQ0Y7QW5KM1FRO0VBREo7SUFFUTtFbUo4UVY7QUFDRjs7QWxKblRBOztFQUFBO0FDQUE7O0VBQUE7QWlKNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0N2SzcxRWdCO0V1SzgxRWhCLGNoSm41RVM7RWdKbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQVlJO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO1VBQUE7RUFDQTtFQUFBO0VBQUE7RUFBQTtFQUNBO0FBNzFHUjtBQSsxR1E7RUFDSSxZcEt4dEhhO0VvS3l0SGI7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO1VBQUE7RUFDQTtFQUFBO0VBQUE7RUFBQTtBQTcxR1o7QUFnMkdRO0VBQ0k7VUFBQTtBQTkxR1o7QUFpMkdRO0VBQ0k7RUFBQTtFQUFBO0VBQ0E7RUFBQTtNQUFBO1VBQUE7RUFDQTtFQUNBLHNCaEovdkhVO0VnSmd3SFY7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO1VBQUE7QUEvMUdaO0F6SjNZSTtFeUpndUhJO0lBYVE7SUFDQTtJQUNBO0VBOTFHZDtBQUNGO0F6SmxaSTtFeUpndUhJO0lBbUJRO0lBQ0E7SUFDQTtFQTcxR2Q7QUFDRjtBQWcyR1E7RUFDSTtFQUFBO0VBQUE7RUFDQTtNQUFBO1VBQUE7RUFFQTtFQUNBO0VBRUEseUJoSjd3SFk7QWdKNmF4QjtBQWsyR1k7RUFDSTtFQUFBO0VBQUE7RUFDQTtFQUNBO0VBQ0E7QUFoMkdoQjtBekp0YUk7RXlKa3dIUTtJQU9RO0lBQ0E7UUFBQTtZQUFBO0lBQ0E7SUFDQTtFQS8xR2xCO0FBQ0Y7QUFtMkdRO0VBQ0k7RUFDQTtFQUNBO0FBajJHWjtBQW0yR1k7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBajJHaEI7QUFxMkdRO0VBQ0k7RUFBQTtFQUFBO0VBQ0E7RUFBQTtNQUFBO1VBQUE7RUFDQTtNQUFBO1VBQUE7RUFDQTtFQUNBO0VBQ0E7QUFuMkdaO0FBcTJHWTtFQUNJO0VBQUE7QUFuMkdoQjtBQXUyR1E7RUFDSTtFQUNBO0VBQ0E7VUFBQTtFQUNBO0VBQUE7RUFBQTtFQUFBO0FBcjJHWjtBQXkyR1k7RUFDSTtBQXYyR2hCO0FBNDJHWTtFQUNJO0FBMTJHaEIsQzs7OztBdktqZkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0FzSjhOSjs7QXRKM05BO0VBQ0k7QXNKOE5KOztBcEpwT0k7RUFESjtJQUVRO0VvSndPTjtBQUNGOztBcEpyT0E7RUFDSTtFQUNBO0VBQ0E7QW9Kd09KO0FwSnRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0VvSnlPTjtBQUNGOztBcEp0T0E7RUFHWTtJQUNJO0lBQ0E7RW9KdU9kO0VwSnpPVTtJQUNJO0lBQ0E7RW9KMk9kO0VwSjdPVTtJQUNJO0lBQ0E7RW9KK09kO0VwSmpQVTtJQUNJO0lBQ0E7RW9KbVBkO0VwSnJQVTtJQUNJO0lBQ0E7RW9KdVBkO0VwSnpQVTtJQUNJO0lBQ0E7RW9KMlBkO0VwSjdQVTtJQUNJO0lBQ0E7RW9KK1BkO0VwSmpRVTtJQUNJO0lBQ0E7RW9KbVFkO0VwSnJRVTtJQUNJO0lBQ0E7RW9KdVFkO0VwSnpRVTtJQUNJO0lBQ0E7RW9KMlFkO0VwSjdRVTtJQUNJO0lBQ0E7RW9KK1FkO0VwSmpSVTtJQUNJO0lBQ0E7RW9KbVJkO0VwSjlRRTtJQUNJO0VvSmdSTjtBQUNGO0FwSjNRUTtFQURKO0lBRVE7RW9KOFFWO0FBQ0Y7O0FuSm5UQTs7RUFBQTtBQ0FBOztFQUFBO0FrSjZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDeEs3MUVnQjtFd0s4MUVoQixjakpuNUVTO0VpSm81RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFZSTtFQUNJO0FBNzFHUjtBMUpyV0k7RTBKaXNIQTtJQUlRO0VBNTFHVjtBQUNGO0ExSm5WSTtFMEowcUhBO0lBUVE7SUFDQTtFQTMxR1Y7RUE2MUdVO0lBQ0k7SUFDQTtJQUNBO0VBMzFHZDtFQTgxR1U7SUFDSTtFQTUxR2Q7QUFDRjtBQSsxR1E7RUFDSTtLQUFBO1VBQUE7QUE3MUdaO0FBZzJHUTtFQUVJO0FBLzFHWjtBQWkyR1k7RUFDSTtBQS8xR2hCLEM7Ozs7QXhLamFBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBdUo4Tko7O0F2SjNOQTtFQUNJO0F1SjhOSjs7QXJKcE9JO0VBREo7SUFFUTtFcUp3T047QUFDRjs7QXJKck9BO0VBQ0k7RUFDQTtFQUNBO0FxSndPSjtBckp0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFcUp5T047QUFDRjs7QXJKdE9BO0VBR1k7SUFDSTtJQUNBO0VxSnVPZDtFckp6T1U7SUFDSTtJQUNBO0VxSjJPZDtFcko3T1U7SUFDSTtJQUNBO0VxSitPZDtFckpqUFU7SUFDSTtJQUNBO0VxSm1QZDtFckpyUFU7SUFDSTtJQUNBO0VxSnVQZDtFckp6UFU7SUFDSTtJQUNBO0VxSjJQZDtFcko3UFU7SUFDSTtJQUNBO0VxSitQZDtFckpqUVU7SUFDSTtJQUNBO0VxSm1RZDtFckpyUVU7SUFDSTtJQUNBO0VxSnVRZDtFckp6UVU7SUFDSTtJQUNBO0VxSjJRZDtFcko3UVU7SUFDSTtJQUNBO0VxSitRZDtFckpqUlU7SUFDSTtJQUNBO0VxSm1SZDtFcko5UUU7SUFDSTtFcUpnUk47QUFDRjtBckozUVE7RUFESjtJQUVRO0VxSjhRVjtBQUNGOztBcEpuVEE7O0VBQUE7QUNBQTs7RUFBQTtBbUo2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Q3pLNzFFZ0I7RXlLODFFaEIsY2xKbjVFUztFa0pvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBWUk7RUFDSSxZdEtodEhZO0FzS21YcEI7QTNKOVVJO0UySjhxSFE7SUFDSTtJQUNBO0lBQ0E7SUFBQTtFQTcxR2Q7QUFDRixDOzs7O0F6SzVZQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QXdKOE5KOztBeEozTkE7RUFDSTtBd0o4Tko7O0F0SnBPSTtFQURKO0lBRVE7RXNKd09OO0FBQ0Y7O0F0SnJPQTtFQUNJO0VBQ0E7RUFDQTtBc0p3T0o7QXRKdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RXNKeU9OO0FBQ0Y7O0F0SnRPQTtFQUdZO0lBQ0k7SUFDQTtFc0p1T2Q7RXRKek9VO0lBQ0k7SUFDQTtFc0oyT2Q7RXRKN09VO0lBQ0k7SUFDQTtFc0orT2Q7RXRKalBVO0lBQ0k7SUFDQTtFc0ptUGQ7RXRKclBVO0lBQ0k7SUFDQTtFc0p1UGQ7RXRKelBVO0lBQ0k7SUFDQTtFc0oyUGQ7RXRKN1BVO0lBQ0k7SUFDQTtFc0orUGQ7RXRKalFVO0lBQ0k7SUFDQTtFc0ptUWQ7RXRKclFVO0lBQ0k7SUFDQTtFc0p1UWQ7RXRKelFVO0lBQ0k7SUFDQTtFc0oyUWQ7RXRKN1FVO0lBQ0k7SUFDQTtFc0orUWQ7RXRKalJVO0lBQ0k7SUFDQTtFc0ptUmQ7RXRKOVFFO0lBQ0k7RXNKZ1JOO0FBQ0Y7QXRKM1FRO0VBREo7SUFFUTtFc0o4UVY7QUFDRjs7QXJKblRBOztFQUFBO0FDQUE7O0VBQUE7QW9KNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0MxSzcxRWdCO0UwSzgxRWhCLGNuSm41RVM7RW1KbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQVlJO0VBQ0k7QUE3MUdSO0E1SnJXSTtFNEppc0hBO0lBSVE7RUE1MUdWO0FBQ0Y7QUE4MUdRO0VBQ0k7RUFDQTtFQUNBO0FBNTFHWjtBQSsxR1E7RUFDSTtFQUNBO0VBQ0E7QUE3MUdaO0FBKzFHWTtFQUNJO0VBQ0E7QUE3MUdoQjtBQWkyR1E7RUF4Qko7SUF5QlE7RUE5MUdWO0FBQ0YsQzs7OztBMUs3WkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0F5SjhOSjs7QXpKM05BO0VBQ0k7QXlKOE5KOztBdkpwT0k7RUFESjtJQUVRO0V1SndPTjtBQUNGOztBdkpyT0E7RUFDSTtFQUNBO0VBQ0E7QXVKd09KO0F2SnRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0V1SnlPTjtBQUNGOztBdkp0T0E7RUFHWTtJQUNJO0lBQ0E7RXVKdU9kO0V2SnpPVTtJQUNJO0lBQ0E7RXVKMk9kO0V2SjdPVTtJQUNJO0lBQ0E7RXVKK09kO0V2SmpQVTtJQUNJO0lBQ0E7RXVKbVBkO0V2SnJQVTtJQUNJO0lBQ0E7RXVKdVBkO0V2SnpQVTtJQUNJO0lBQ0E7RXVKMlBkO0V2SjdQVTtJQUNJO0lBQ0E7RXVKK1BkO0V2SmpRVTtJQUNJO0lBQ0E7RXVKbVFkO0V2SnJRVTtJQUNJO0lBQ0E7RXVKdVFkO0V2SnpRVTtJQUNJO0lBQ0E7RXVKMlFkO0V2SjdRVTtJQUNJO0lBQ0E7RXVKK1FkO0V2SmpSVTtJQUNJO0lBQ0E7RXVKbVJkO0V2SjlRRTtJQUNJO0V1SmdSTjtBQUNGO0F2SjNRUTtFQURKO0lBRVE7RXVKOFFWO0FBQ0Y7O0F0Sm5UQTs7RUFBQTtBQ0FBOztFQUFBO0FxSjZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDM0s3MUVnQjtFMks4MUVoQixjcEpuNUVTO0VvSm81RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFhUTtFQUNJLHlCcEpwdEhXO0FvSnNYdkI7QUFnMkdZO0VBQ0ksY3BKcnVISTtBb0p1WXBCO0FBaTJHWTtFQUNJLGNwSi90SE87QW9KZ1l2QjtBQW0yR1E7RUFDSTtFQUFBO0VBQUE7RUFDQTtNQUFBO1VBQUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLGNwSjF1SFc7QW9KeVl2QjtBQW0yR1k7RUFDSTtFQUNBO0VBQ0EsY3BKL3VITztBb0o4WXZCO0FBcTJHUTtFQUNJO0VBQ0E7RUFDQTtFQUFBO0VBQUE7RUFDQTtNQUFBO1VBQUE7QUFuMkdaO0FBcTJHWTtFQUNJO0VBQ0EsY3BKM3ZITztBb0p3WnZCO0FBdTJHUTtFQUNJO0FBcjJHWjtBQXUyR1k7RUFDSTtFQUNBO0VBQ0E7TUFBQTtVQUFBO0FBcjJHaEIsQzs7OztBM0szYUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0EwSjhOSjs7QTFKM05BO0VBQ0k7QTBKOE5KOztBeEpwT0k7RUFESjtJQUVRO0V3SndPTjtBQUNGOztBeEpyT0E7RUFDSTtFQUNBO0VBQ0E7QXdKd09KO0F4SnRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0V3SnlPTjtBQUNGOztBeEp0T0E7RUFHWTtJQUNJO0lBQ0E7RXdKdU9kO0V4SnpPVTtJQUNJO0lBQ0E7RXdKMk9kO0V4SjdPVTtJQUNJO0lBQ0E7RXdKK09kO0V4SmpQVTtJQUNJO0lBQ0E7RXdKbVBkO0V4SnJQVTtJQUNJO0lBQ0E7RXdKdVBkO0V4SnpQVTtJQUNJO0lBQ0E7RXdKMlBkO0V4SjdQVTtJQUNJO0lBQ0E7RXdKK1BkO0V4SmpRVTtJQUNJO0lBQ0E7RXdKbVFkO0V4SnJRVTtJQUNJO0lBQ0E7RXdKdVFkO0V4SnpRVTtJQUNJO0lBQ0E7RXdKMlFkO0V4SjdRVTtJQUNJO0lBQ0E7RXdKK1FkO0V4SmpSVTtJQUNJO0lBQ0E7RXdKbVJkO0V4SjlRRTtJQUNJO0V3SmdSTjtBQUNGO0F4SjNRUTtFQURKO0lBRVE7RXdKOFFWO0FBQ0Y7O0F2Sm5UQTs7RUFBQTtBQ0FBOztFQUFBO0FzSjZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDNUs3MUVnQjtFNEs4MUVoQixjckpuNUVTO0VxSm81RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFZSTtFQUNJO0VBQ0E7QUE3MUdSO0FBKzFHUTtFQUNJO0VBQ0EsOEIxSHZ1SFU7RTBId3VIVjtFQUNBLFdySnB1SFU7RXFKcXVIVix5QnJKL3NIVztFcUpndEhYO0VBQ0E7QUE3MUdaLEM7Ozs7QTVLL1lBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBMko4Tko7O0EzSjNOQTtFQUNJO0EySjhOSjs7QXpKcE9JO0VBREo7SUFFUTtFeUp3T047QUFDRjs7QXpKck9BO0VBQ0k7RUFDQTtFQUNBO0F5SndPSjtBekp0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFeUp5T047QUFDRjs7QXpKdE9BO0VBR1k7SUFDSTtJQUNBO0V5SnVPZDtFekp6T1U7SUFDSTtJQUNBO0V5SjJPZDtFeko3T1U7SUFDSTtJQUNBO0V5SitPZDtFekpqUFU7SUFDSTtJQUNBO0V5Sm1QZDtFekpyUFU7SUFDSTtJQUNBO0V5SnVQZDtFekp6UFU7SUFDSTtJQUNBO0V5SjJQZDtFeko3UFU7SUFDSTtJQUNBO0V5SitQZDtFekpqUVU7SUFDSTtJQUNBO0V5Sm1RZDtFekpyUVU7SUFDSTtJQUNBO0V5SnVRZDtFekp6UVU7SUFDSTtJQUNBO0V5SjJRZDtFeko3UVU7SUFDSTtJQUNBO0V5SitRZDtFekpqUlU7SUFDSTtJQUNBO0V5Sm1SZDtFeko5UUU7SUFDSTtFeUpnUk47QUFDRjtBekozUVE7RUFESjtJQUVRO0V5SjhRVjtBQUNGOztBeEpuVEE7O0VBQUE7QUNBQTs7RUFBQTtBdUo2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3QzdLNzFFZ0I7RTZLODFFaEIsY3RKbjVFUztFc0pvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBV0E7RUFDSSx5QnRKL3NIb0I7RXNKZ3RIcEI7QUE1MUdKO0FBODFHSTtFQUNJO0VBQ0Esc0J0Smp1SGM7RXNKa3VIZDtVQUFBO0FBNTFHUjtBL0ozV0k7RStKb3NIQTtJQU1RLHlCdEp4dEhZO0lzSnl0SFo7RUEzMUdWO0FBQ0Y7QUE4MUdJO0VBQ0k7RUFDQTtFQUNBO0VBQUE7RUFBQTtFQUNBO0VBQUE7TUFBQTtVQUFBO0FBNTFHUjtBL0p2WEk7RStKK3NIQTtJQU9RO0lBQ0E7SUFDQTtJQUNBO0VBMzFHVjtBQUNGO0FBODFHSTtFQTdCSjtJQThCUTtFQTMxR047QUFDRixDOzs7O0E3S3BhQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QTRKOE5KOztBNUozTkE7RUFDSTtBNEo4Tko7O0ExSnBPSTtFQURKO0lBRVE7RTBKd09OO0FBQ0Y7O0ExSnJPQTtFQUNJO0VBQ0E7RUFDQTtBMEp3T0o7QTFKdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RTBKeU9OO0FBQ0Y7O0ExSnRPQTtFQUdZO0lBQ0k7SUFDQTtFMEp1T2Q7RTFKek9VO0lBQ0k7SUFDQTtFMEoyT2Q7RTFKN09VO0lBQ0k7SUFDQTtFMEorT2Q7RTFKalBVO0lBQ0k7SUFDQTtFMEptUGQ7RTFKclBVO0lBQ0k7SUFDQTtFMEp1UGQ7RTFKelBVO0lBQ0k7SUFDQTtFMEoyUGQ7RTFKN1BVO0lBQ0k7SUFDQTtFMEorUGQ7RTFKalFVO0lBQ0k7SUFDQTtFMEptUWQ7RTFKclFVO0lBQ0k7SUFDQTtFMEp1UWQ7RTFKelFVO0lBQ0k7SUFDQTtFMEoyUWQ7RTFKN1FVO0lBQ0k7SUFDQTtFMEorUWQ7RTFKalJVO0lBQ0k7SUFDQTtFMEptUmQ7RTFKOVFFO0lBQ0k7RTBKZ1JOO0FBQ0Y7QTFKM1FRO0VBREo7SUFFUTtFMEo4UVY7QUFDRjs7QXpKblRBOztFQUFBO0FDQUE7O0VBQUE7QXdKNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0M5SzcxRWdCO0U4SzgxRWhCLGN2Sm41RVM7RXVKbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQVlJO0VBQ0k7QUE3MUdSOztBaEtyV0k7RWdLdXNISTtJQUNJO0lBQ0E7SUFFQTtJQUNBO0lBQ0E7SUFDQSxjdko5dEhXO0V1SitYckI7QUFDRixDOzs7O0E5S2haQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QTZKOE5KOztBN0ozTkE7RUFDSTtBNko4Tko7O0EzSnBPSTtFQURKO0lBRVE7RTJKd09OO0FBQ0Y7O0EzSnJPQTtFQUNJO0VBQ0E7RUFDQTtBMkp3T0o7QTNKdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RTJKeU9OO0FBQ0Y7O0EzSnRPQTtFQUdZO0lBQ0k7SUFDQTtFMkp1T2Q7RTNKek9VO0lBQ0k7SUFDQTtFMkoyT2Q7RTNKN09VO0lBQ0k7SUFDQTtFMkorT2Q7RTNKalBVO0lBQ0k7SUFDQTtFMkptUGQ7RTNKclBVO0lBQ0k7SUFDQTtFMkp1UGQ7RTNKelBVO0lBQ0k7SUFDQTtFMkoyUGQ7RTNKN1BVO0lBQ0k7SUFDQTtFMkorUGQ7RTNKalFVO0lBQ0k7SUFDQTtFMkptUWQ7RTNKclFVO0lBQ0k7SUFDQTtFMkp1UWQ7RTNKelFVO0lBQ0k7SUFDQTtFMkoyUWQ7RTNKN1FVO0lBQ0k7SUFDQTtFMkorUWQ7RTNKalJVO0lBQ0k7SUFDQTtFMkptUmQ7RTNKOVFFO0lBQ0k7RTJKZ1JOO0FBQ0Y7QTNKM1FRO0VBREo7SUFFUTtFMko4UVY7QUFDRjs7QTFKblRBOztFQUFBO0FDQUE7O0VBQUE7QXlKNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0MvSzcxRWdCO0UrSzgxRWhCLGN4Sm41RVM7RXdKbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQVlJO0VBQ0ksY3hKdnRIZTtFd0p3dEhmO0FBNzFHUjtBQSsxR1E7RUFDSTtFQUNBO0FBNzFHWjtBQWcyR1E7RUFDSSxjeEpodUhXO0F3SmtZdkI7QUFpMkdRO0VBQ0k7QUEvMUdaO0FqS2hYSTtFaUs4c0hJO0lBSVE7RUE5MUdkO0FBQ0Y7QUFpMkdRO0VBQ0k7QUEvMUdaO0FBaTJHWTtFQUNJO0FBLzFHaEI7QUFrMkdZO0VBQ0k7QUFoMkdoQjtBaks5WEk7RWlLNnRIUTtJQUlRO0VBLzFHbEI7QUFDRixDOzs7O0EvS25hQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QThKOE5KOztBOUozTkE7RUFDSTtBOEo4Tko7O0E1SnBPSTtFQURKO0lBRVE7RTRKd09OO0FBQ0Y7O0E1SnJPQTtFQUNJO0VBQ0E7RUFDQTtBNEp3T0o7QTVKdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RTRKeU9OO0FBQ0Y7O0E1SnRPQTtFQUdZO0lBQ0k7SUFDQTtFNEp1T2Q7RTVKek9VO0lBQ0k7SUFDQTtFNEoyT2Q7RTVKN09VO0lBQ0k7SUFDQTtFNEorT2Q7RTVKalBVO0lBQ0k7SUFDQTtFNEptUGQ7RTVKclBVO0lBQ0k7SUFDQTtFNEp1UGQ7RTVKelBVO0lBQ0k7SUFDQTtFNEoyUGQ7RTVKN1BVO0lBQ0k7SUFDQTtFNEorUGQ7RTVKalFVO0lBQ0k7SUFDQTtFNEptUWQ7RTVKclFVO0lBQ0k7SUFDQTtFNEp1UWQ7RTVKelFVO0lBQ0k7SUFDQTtFNEoyUWQ7RTVKN1FVO0lBQ0k7SUFDQTtFNEorUWQ7RTVKalJVO0lBQ0k7SUFDQTtFNEptUmQ7RTVKOVFFO0lBQ0k7RTRKZ1JOO0FBQ0Y7QTVKM1FRO0VBREo7SUFFUTtFNEo4UVY7QUFDRjs7QTNKblRBOztFQUFBO0FDQUE7O0VBQUE7QTBKNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0NoTDcxRWdCO0VnTDgxRWhCLGN6Sm41RVM7RXlKbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQVlJO0VBQ0k7QUE3MUdSLEM7Ozs7QWhMcllBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBK0o4Tko7O0EvSjNOQTtFQUNJO0ErSjhOSjs7QTdKcE9JO0VBREo7SUFFUTtFNkp3T047QUFDRjs7QTdKck9BO0VBQ0k7RUFDQTtFQUNBO0E2SndPSjtBN0p0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFNkp5T047QUFDRjs7QTdKdE9BO0VBR1k7SUFDSTtJQUNBO0U2SnVPZDtFN0p6T1U7SUFDSTtJQUNBO0U2SjJPZDtFN0o3T1U7SUFDSTtJQUNBO0U2SitPZDtFN0pqUFU7SUFDSTtJQUNBO0U2Sm1QZDtFN0pyUFU7SUFDSTtJQUNBO0U2SnVQZDtFN0p6UFU7SUFDSTtJQUNBO0U2SjJQZDtFN0o3UFU7SUFDSTtJQUNBO0U2SitQZDtFN0pqUVU7SUFDSTtJQUNBO0U2Sm1RZDtFN0pyUVU7SUFDSTtJQUNBO0U2SnVRZDtFN0p6UVU7SUFDSTtJQUNBO0U2SjJRZDtFN0o3UVU7SUFDSTtJQUNBO0U2SitRZDtFN0pqUlU7SUFDSTtJQUNBO0U2Sm1SZDtFN0o5UUU7SUFDSTtFNkpnUk47QUFDRjtBN0ozUVE7RUFESjtJQUVRO0U2SjhRVjtBQUNGOztBNUpuVEE7O0VBQUE7QUNBQTs7RUFBQTtBMko2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Q2pMNzFFZ0I7RWlMODFFaEIsYzFKbjVFUztFMEpvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBcHBCSTtFQUNJO0FBN3JGUjtBQStyRlE7RXZLL2pHSjtBdUttWUo7QUErckZZO0V2S2xrR1I7RXVLb2tHWTtFQUNBLGMxSmhrR087RTBKaWtHUDtBQTdyRmhCO0FBaXNGUTtFQUNJO0VBQ0EsYzFKaGxHUTtBMEppWnBCO0FBaTFHSTtFQUNJO0FBLzBHUjtBQWsxR0k7RUFDSTtBQWgxR1I7QUFtMUdJO0VBQ0k7RUFDQTtFQUNBO0VBQ0EsYzFKcHVIZTtBMEptWnZCO0FuSzlYSTtFbUsyc0hBO0l2S3R1SEE7RXVLNlpGO0FBQ0Y7QUFrMUdRO0VBQ0k7RUFDQTtFQUNBO0VBQ0EsYzFKOXVIVztBMEo4WnZCO0FBbTFHUTtFQUNJLGMxSjd0SFk7QTBKNFl4QjtBQW8xR1E7RUFDSSxjMUp4dUhVO0EwSnNadEI7QUFxMUdRO0VBQ0k7RUFDQTtFQUNBLGMxSjV2SFc7RTBKNnZIWDtBQW4xR1o7QW5LclpJO0VtS291SEk7SXZLL3ZISjtFdUtvYkY7QUFDRjtBbksxWkk7RW1LOHVIUTtJQUVRO0VBbDFHbEI7QUFDRjtBQXUxR0k7RUFDSTtFQUNBLGMxSjd3SGU7RTBKOHdIZjtFQUNBO0VBQ0E7RUFDQTtBQXIxR1I7QW5LdmFJO0VtS3N2SEE7SUFTUTtJQUNBO0VBcDFHVjtBQUNGO0FBdTFHUTtFQUNJO0VBQ0E7QUFyMUdaLEM7Ozs7QWpMamRBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBZ0s4Tko7O0FoSzNOQTtFQUNJO0FnSzhOSjs7QTlKcE9JO0VBREo7SUFFUTtFOEp3T047QUFDRjs7QTlKck9BO0VBQ0k7RUFDQTtFQUNBO0E4SndPSjtBOUp0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFOEp5T047QUFDRjs7QTlKdE9BO0VBR1k7SUFDSTtJQUNBO0U4SnVPZDtFOUp6T1U7SUFDSTtJQUNBO0U4SjJPZDtFOUo3T1U7SUFDSTtJQUNBO0U4SitPZDtFOUpqUFU7SUFDSTtJQUNBO0U4Sm1QZDtFOUpyUFU7SUFDSTtJQUNBO0U4SnVQZDtFOUp6UFU7SUFDSTtJQUNBO0U4SjJQZDtFOUo3UFU7SUFDSTtJQUNBO0U4SitQZDtFOUpqUVU7SUFDSTtJQUNBO0U4Sm1RZDtFOUpyUVU7SUFDSTtJQUNBO0U4SnVRZDtFOUp6UVU7SUFDSTtJQUNBO0U4SjJRZDtFOUo3UVU7SUFDSTtJQUNBO0U4SitRZDtFOUpqUlU7SUFDSTtJQUNBO0U4Sm1SZDtFOUo5UUU7SUFDSTtFOEpnUk47QUFDRjtBOUozUVE7RUFESjtJQUVRO0U4SjhRVjtBQUNGOztBN0puVEE7O0VBQUE7QUNBQTs7RUFBQTtBNEo2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Q2xMNzFFZ0I7RWtMODFFaEIsYzNKbjVFUztFMkpvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBV0E7RUFDSTtFQUNBO0VBQ0Esa0IvSGp1SGlCO0UrSGt1SGpCLG1CL0hsdUhpQjtFK0htdUhqQjtNQUFBO1VBQUE7RUFDQTtFQUNBO0VBQUE7RUFBQTtFQUNBO01BQUE7VUFBQTtFQUNBO01BQUE7VUFBQTtBQTUxR0o7QXBLN1dJO0VvS2dzSEo7SUFZUTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0VBMzFHTjtBQUNGO0FBNjFHSTtFQUNJO0FBMzFHUjtBcEt6WEk7RW9LbXRIQTtJQUlRO0VBMTFHVjtBQUNGO0FBNDFHUTtFQUNJO0FBMTFHWixDOzs7O0FsTGphQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QWlLOE5KOztBakszTkE7RUFDSTtBaUs4Tko7O0EvSnBPSTtFQURKO0lBRVE7RStKd09OO0FBQ0Y7O0EvSnJPQTtFQUNJO0VBQ0E7RUFDQTtBK0p3T0o7QS9KdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RStKeU9OO0FBQ0Y7O0EvSnRPQTtFQUdZO0lBQ0k7SUFDQTtFK0p1T2Q7RS9Kek9VO0lBQ0k7SUFDQTtFK0oyT2Q7RS9KN09VO0lBQ0k7SUFDQTtFK0orT2Q7RS9KalBVO0lBQ0k7SUFDQTtFK0ptUGQ7RS9KclBVO0lBQ0k7SUFDQTtFK0p1UGQ7RS9KelBVO0lBQ0k7SUFDQTtFK0oyUGQ7RS9KN1BVO0lBQ0k7SUFDQTtFK0orUGQ7RS9KalFVO0lBQ0k7SUFDQTtFK0ptUWQ7RS9KclFVO0lBQ0k7SUFDQTtFK0p1UWQ7RS9KelFVO0lBQ0k7SUFDQTtFK0oyUWQ7RS9KN1FVO0lBQ0k7SUFDQTtFK0orUWQ7RS9KalJVO0lBQ0k7SUFDQTtFK0ptUmQ7RS9KOVFFO0lBQ0k7RStKZ1JOO0FBQ0Y7QS9KM1FRO0VBREo7SUFFUTtFK0o4UVY7QUFDRjs7QTlKblRBOztFQUFBO0FDQUE7O0VBQUE7QTZKNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0NuTDcxRWdCO0VtTDgxRWhCLGM1Sm41RVM7RTRKbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQVdBO0FBUVE7RUFDSTtBQW4yR1o7QUFzMkdRO0VBQ0k7RUFBQTtFQUFBO0VBQ0E7TUFBQTtVQUFBO0VBQ0E7RUFBQTtNQUFBO1VBQUE7QUFwMkdaO0FBdTJHUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFBQTtFQUFBO0FBcjJHWjtBQXUyR1k7RUFDSTtBQXIyR2hCO0FBdzJHWTtFQUVJO0FBdjJHaEI7QUEyMkdRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EscUJBdENVO0VBdUNWO0VBQ0E7QUF6MkdaO0FBNDJHUTtFQUNJLHFCNUo3dkhZO0E0Sm1aeEI7QUE2MkdRO0VBQ0k7RUFDQTtBQTMyR1osQzs7OztBbkwxYUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0FrSzhOSjs7QWxLM05BO0VBQ0k7QWtLOE5KOztBaEtwT0k7RUFESjtJQUVRO0VnS3dPTjtBQUNGOztBaEtyT0E7RUFDSTtFQUNBO0VBQ0E7QWdLd09KO0FoS3RPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0VnS3lPTjtBQUNGOztBaEt0T0E7RUFHWTtJQUNJO0lBQ0E7RWdLdU9kO0VoS3pPVTtJQUNJO0lBQ0E7RWdLMk9kO0VoSzdPVTtJQUNJO0lBQ0E7RWdLK09kO0VoS2pQVTtJQUNJO0lBQ0E7RWdLbVBkO0VoS3JQVTtJQUNJO0lBQ0E7RWdLdVBkO0VoS3pQVTtJQUNJO0lBQ0E7RWdLMlBkO0VoSzdQVTtJQUNJO0lBQ0E7RWdLK1BkO0VoS2pRVTtJQUNJO0lBQ0E7RWdLbVFkO0VoS3JRVTtJQUNJO0lBQ0E7RWdLdVFkO0VoS3pRVTtJQUNJO0lBQ0E7RWdLMlFkO0VoSzdRVTtJQUNJO0lBQ0E7RWdLK1FkO0VoS2pSVTtJQUNJO0lBQ0E7RWdLbVJkO0VoSzlRRTtJQUNJO0VnS2dSTjtBQUNGO0FoSzNRUTtFQURKO0lBRVE7RWdLOFFWO0FBQ0Y7O0EvSm5UQTs7RUFBQTtBQ0FBOztFQUFBO0E4SjZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDcEw3MUVnQjtFb0w4MUVoQixjN0puNUVTO0U2Sm81RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFpQkk7RUFDSTtFQUNBLGtCNUh4dUhnQjtFNEh5dUhoQjtFQUNBO0VBQ0E7RUFDQTtBQWwyR1I7QXRLMVdJO0VzS3NzSEE7SUFTUTtFQWoyR1Y7QUFDRjtBdEsvV0k7RXNLc3NIQTtJQWFRO0lBQ0E7RUFoMkdWO0FBQ0Y7QUFtMkdZO0VBQ0k7RUFDQTtFQUNBO0VBQ0EsZUE1Qk07RUE2Qk4sbUJBN0JNO0FBcDBHdEI7QXRLNVhJO0VzS3d0SFE7SUFRUTtJQUNBO0VBaDJHbEI7QUFDRjtBQW0yR1k7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBQWoyR2hCO0F0S3hZSTtFc0txdUhRO0lBT1E7SUFDQTtJQUNBO0VBaDJHbEI7QUFDRjtBdEsvWUk7RXNLaXZIWTtJQUVRO0lBQ0E7RUFoMkd0QjtBQUNGO0FBbzJHWTtFQUNJO0VBQ0E7QUFsMkdoQjtBdEt6Wkk7RXNLeXZIUTtJQUtRO0lBQ0E7RUFqMkdsQjtBQUNGO0FBbzJHWTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0FBbDJHaEI7QXRLcmFJO0VzS213SFE7SUFPUTtJQUNBO0VBajJHbEI7QUFDRjtBdEszYUk7RXNLbXdIUTtJQVlRO0lBQ0E7RUFoMkdsQjtBQUNGO0FBbTJHWTtFQUNJO0VBQ0E7QUFqMkdoQjtBdEtyYkk7RXNLb3hIUTtJQUtRO0lBQ0E7RUFoMkdsQjtBQUNGO0FBazJHZ0I7RUFDSTtBQWgyR3BCO0F0SzliSTtFc0s2eEhZO0lBSVE7RUEvMUd0QjtBQUNGO0FBbzJHZ0I7RUFDSTtBQWwyR3BCO0FBdTJHUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0FBcjJHWjtBdEs1Y0k7RXNLNnlISTtJQU9RO0VBcDJHZDtBQUNGO0FBdzJHWTtFQUNJO0FBdDJHaEI7QUF5MkdZO0VBQ0k7RUFBQTtNQUFBO1VBQUE7QUF2MkdoQjtBdEt2ZEk7RXNLNnpIUTtJQUlRO0lBQUE7UUFBQTtZQUFBO0lBQ0E7UUFBQTtZQUFBO0VBdDJHbEI7QUFDRjtBQXkyR1k7RUFDSTtBQXYyR2hCO0F0S2hlSTtFc0tzMEhRO0lBSVE7SUFDQTtRQUFBO1lBQUE7RUF0MkdsQjtBQUNGO0FBMDJHUTtFQUNJO0VBQ0E7RUFDQTtFQUNBLGM3SnoySFc7RTZKMDJIWDtBQXgyR1o7QXRLN2VJO0VzS2cxSEk7SUFRUTtFQXYyR2Q7QUFDRjtBQXkyR1k7RUFDSTtBQXYyR2hCO0F0S3JmSTtFc0syMUhRO0lBSVE7RUF0MkdsQjtBQUNGO0FBeTJHWTtFQUNJO0FBdjJHaEI7QUEyMkdRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUF6MkdaO0FBNDJHUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsYzdKNTRIVztFNko2NEhYO0VBQ0E7QUExMkdaO0F0Sy9nQkk7RXNLazNISTtJQVVRO0VBejJHZDtBQUNGO0FBNDJHUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBMTJHWjtBQTYyR1E7RUFDSTtFQUNBLGM3SjU2SFM7RTZKNjZIVDtFQUNBO0VBQ0E7QUEzMkdaO0FBODJHUTtFQUNJO0FBNTJHWjtBQTgyR1k7RUFDSSxxQzdKaDVIUTtFNkppNUhSO0FBNTJHaEI7QUE4MkdnQjtFQUNJO0VBQ0E7RUFDQTtFQUNBLGtDcEx4NEhRO0FvTDRoQjVCO0F0S2pqQkk7RXNLeTVIWTtJQU9RO0lBQUE7SUFBQTtJQUNBO1FBQUE7WUFBQTtJQUNBO0lBQ0EscUM3Sjc1SEE7STZKODVIQTtFQTMyR3RCO0FBQ0Y7QUFnM0dRO0VBQ0k7QUE5MkdaO0F0SzdqQkk7RXNLMDZISTtJQUlRO0VBNzJHZDtBQUNGO0FBZzNHUTtFQUNJO0VBQ0EsYzdKejhIVztBNkoybEJ2QjtBdEt0a0JJO0VzS2s3SEk7SUFLUTtFQTcyR2Q7QUFDRjtBQSsyR1k7RUFDSSxjN0poOUhPO0U2Smk5SFA7QUE3MkdoQjtBQWkzR1E7RUFDSTtFQUNBO0VBQ0E7QUEvMkdaO0F0S3BsQkk7RXNLZzhISTtJQU1RO0lBQ0E7RUE5MkdkO0FBQ0Y7QUFpM0dRO0VBQ0k7QUEvMkdaO0F0SzdsQkk7RXNLMjhISTtJQUlRO0VBOTJHZDtBQUNGO0FBaTNHUTtFQUNJO0FBLzJHWjtBdEtybUJJO0VzS205SEk7SUFJUTtFQTkyR2Q7QUFDRjtBQWkzR1E7RUFDSTtFQUNBO0VBQ0EsMkJBNVJLO0VBNlJMLDJCQTVSVTtBQW5sR3RCO0F0S2huQkk7RXNLMjlISTtJQU9RO0lBQ0E7SUFDQTtJQUNBO0VBOTJHZDtBQUNGO0FBZzNHWTs7RUFFSSxzQjdKcmdJTTtBNkp1cEJ0QjtBdEs1bkJJO0VzS3crSFE7O0lBS1EseUI3SjkvSEc7RTZKa3BCckI7QUFDRjtBQWczR1E7RUFDSTtBQTkyR1o7QXRLcm9CSTtFc0trL0hJO0lBSVE7RUE3MkdkO0FBQ0Y7QUFnM0dRO0VBQ0k7QUE5MkdaO0F0SzdvQkk7RXNLOC9IWTtJQUVRO0lBQ0E7RUEvMkd0QjtBQUNGO0F0S25wQkk7RXNLcWdJWTtJQUVRO0lBQ0E7RUFoM0d0QjtBQUNGO0F0S3pwQkk7RXNLMmdJZ0I7SUFFUTtJQUNBO0VBaDNHMUI7QUFDRjtBdEsvcEJJO0VzS21oSVk7SUFFUTtJQUNBO0VBbDNHdEI7QUFDRjtBQXEzR2dCO0VBQ0k7RUFDQTtBQW4zR3BCO0F0S3pxQkk7RXNLMGhJWTtJQUtRO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7RUFsM0d0QjtBQUNGO0FBdTNHUTtFQUNJO0FBcjNHWjtBdEtyckJJO0VzS3lpSUk7SUFJUTtFQXAzR2Q7QUFDRjtBdEsxckJJO0VzS2lqSVk7SUFFUTtJQUNBO0lBQ0E7RUFyM0d0QjtBQUNGO0FBdTNHb0I7RUFDSTtNQUFBO1VBQUE7RUFDQTtBQXIzR3hCO0F0S3JzQkk7RXNLOGpJWTtJQUVRO0lBQ0E7RUF2M0d0QjtBQUNGO0FBODNHZ0I7RUFDSSxzQkF6WVE7RUEwWVI7QUE1M0dwQjtBdEsvc0JJO0VzS3lrSVk7SUFLUTtJQUNBLG1Cakk3bUlIO0VpSWt2Qm5CO0FBQ0Y7QXRLcnRCSTtFc0ttbElZO0lBRVE7SUFDQTtFQTUzR3RCO0FBQ0Y7QXRLM3RCSTtFc0t5bElnQjtJQUVRO0lBQ0E7RUE1M0cxQjtBQUNGO0F0S2p1Qkk7RXNLaW1JWTtJQUVRO0lBQ0E7RUE5M0d0QjtBQUNGO0FBaTRHZ0I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBQS8zR3BCO0F0Szd1Qkk7RXNLd21JWTtJQU9RO0lBQ0E7RUE5M0d0QjtBQUNGO0F0S252Qkk7RXNLd21JWTtJQVlRO0lBQ0E7SUFDQTtFQTczR3RCO0FBQ0Y7QUFrNEdRO0VBQ0k7RUFDQTtFQUNBO0FBaDRHWjtBQW00R1E7RUFDSTtBQWo0R1o7QUFtNEdZO0VBQ0k7RUFDQTtBQWo0R2hCO0F0S3R3Qkk7RXNLcW9JUTtJQUtRO0lBQ0E7RUFoNEdsQjtBQUNGO0FBazRHZ0I7RUFDSTtFQUNBO0FBaDRHcEI7QXRLaHhCSTtFc0s4b0lZO0lBS1E7SUFDQTtFQS8zR3RCO0FBQ0Y7QUFrNEdnQjtFQUNJO0VBQ0E7QUFoNEdwQjtBdEsxeEJJO0VzS3dwSVk7SUFLUTtJQUNBO0VBLzNHdEI7QUFDRjtBQWs0R2dCO0VBQ0k7RUFDQTtBQWg0R3BCO0F0S3B5Qkk7RXNLa3FJWTtJQUtRO0lBQ0E7RUEvM0d0QjtBQUNGLEM7Ozs7QXBMMTBCQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QW1LOE5KOztBbkszTkE7RUFDSTtBbUs4Tko7O0FqS3BPSTtFQURKO0lBRVE7RWlLd09OO0FBQ0Y7O0FqS3JPQTtFQUNJO0VBQ0E7RUFDQTtBaUt3T0o7QWpLdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RWlLeU9OO0FBQ0Y7O0FqS3RPQTtFQUdZO0lBQ0k7SUFDQTtFaUt1T2Q7RWpLek9VO0lBQ0k7SUFDQTtFaUsyT2Q7RWpLN09VO0lBQ0k7SUFDQTtFaUsrT2Q7RWpLalBVO0lBQ0k7SUFDQTtFaUttUGQ7RWpLclBVO0lBQ0k7SUFDQTtFaUt1UGQ7RWpLelBVO0lBQ0k7SUFDQTtFaUsyUGQ7RWpLN1BVO0lBQ0k7SUFDQTtFaUsrUGQ7RWpLalFVO0lBQ0k7SUFDQTtFaUttUWQ7RWpLclFVO0lBQ0k7SUFDQTtFaUt1UWQ7RWpLelFVO0lBQ0k7SUFDQTtFaUsyUWQ7RWpLN1FVO0lBQ0k7SUFDQTtFaUsrUWQ7RWpLalJVO0lBQ0k7SUFDQTtFaUttUmQ7RWpLOVFFO0lBQ0k7RWlLZ1JOO0FBQ0Y7QWpLM1FRO0VBREo7SUFFUTtFaUs4UVY7QUFDRjs7QWhLblRBOztFQUFBO0FDQUE7O0VBQUE7QStKNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0NyTDcxRWdCO0VxTDgxRWhCLGM5Sm41RVM7RThKbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQWFRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUE5MUdaLEM7Ozs7QXJMM1lBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBb0s4Tko7O0FwSzNOQTtFQUNJO0FvSzhOSjs7QWxLcE9JO0VBREo7SUFFUTtFa0t3T047QUFDRjs7QWxLck9BO0VBQ0k7RUFDQTtFQUNBO0FrS3dPSjtBbEt0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFa0t5T047QUFDRjs7QWxLdE9BO0VBR1k7SUFDSTtJQUNBO0VrS3VPZDtFbEt6T1U7SUFDSTtJQUNBO0VrSzJPZDtFbEs3T1U7SUFDSTtJQUNBO0VrSytPZDtFbEtqUFU7SUFDSTtJQUNBO0VrS21QZDtFbEtyUFU7SUFDSTtJQUNBO0VrS3VQZDtFbEt6UFU7SUFDSTtJQUNBO0VrSzJQZDtFbEs3UFU7SUFDSTtJQUNBO0VrSytQZDtFbEtqUVU7SUFDSTtJQUNBO0VrS21RZDtFbEtyUVU7SUFDSTtJQUNBO0VrS3VRZDtFbEt6UVU7SUFDSTtJQUNBO0VrSzJRZDtFbEs3UVU7SUFDSTtJQUNBO0VrSytRZDtFbEtqUlU7SUFDSTtJQUNBO0VrS21SZDtFbEs5UUU7SUFDSTtFa0tnUk47QUFDRjtBbEszUVE7RUFESjtJQUVRO0VrSzhRVjtBQUNGOztBaktuVEE7O0VBQUE7QUNBQTs7RUFBQTtBZ0s2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Q3RMNzFFZ0I7RXNMODFFaEIsYy9KbjVFUztFK0pvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBWUk7RUFDSTtNQUFBO1VBQUE7RUFDQTtFQUFBO0VBQUE7RUFDQTtFQUNBO0FBNzFHUjtBeEt4V0k7RXdLaXNIQTtJQU9RO0lBQ0E7RUE1MUdWO0FBQ0Y7QUE4MUdRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EscUMvSjdzSFk7RStKOHNIWjtFQUNBLFUxSHJ2SFM7QTBIeVpyQjtBQSsxR1E7RUFDSTtFQUNBO0FBNzFHWjtBQWcyR1E7RUFDSSxjL0o5dUhXO0UrSit1SFg7RUFDQTtBQTkxR1o7QXhLbFlJO0V3S211SEk7SUFFUTtJQUNBO0VBLzFHZDtBQUNGO0FBazJHUTtFQUNJO0FBaDJHWjtBeEszWUk7RXdLMHVISTtJQUlRO0lBQ0E7RUEvMUdkO0FBQ0YsQzs7OztBdExqYkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0FxSzhOSjs7QXJLM05BO0VBQ0k7QXFLOE5KOztBbktwT0k7RUFESjtJQUVRO0VtS3dPTjtBQUNGOztBbktyT0E7RUFDSTtFQUNBO0VBQ0E7QW1Ld09KO0FuS3RPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0VtS3lPTjtBQUNGOztBbkt0T0E7RUFHWTtJQUNJO0lBQ0E7RW1LdU9kO0VuS3pPVTtJQUNJO0lBQ0E7RW1LMk9kO0VuSzdPVTtJQUNJO0lBQ0E7RW1LK09kO0VuS2pQVTtJQUNJO0lBQ0E7RW1LbVBkO0VuS3JQVTtJQUNJO0lBQ0E7RW1LdVBkO0VuS3pQVTtJQUNJO0lBQ0E7RW1LMlBkO0VuSzdQVTtJQUNJO0lBQ0E7RW1LK1BkO0VuS2pRVTtJQUNJO0lBQ0E7RW1LbVFkO0VuS3JRVTtJQUNJO0lBQ0E7RW1LdVFkO0VuS3pRVTtJQUNJO0lBQ0E7RW1LMlFkO0VuSzdRVTtJQUNJO0lBQ0E7RW1LK1FkO0VuS2pSVTtJQUNJO0lBQ0E7RW1LbVJkO0VuSzlRRTtJQUNJO0VtS2dSTjtBQUNGO0FuSzNRUTtFQURKO0lBRVE7RW1LOFFWO0FBQ0Y7O0FsS25UQTs7RUFBQTtBQ0FBOztFQUFBO0FpSzZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDdkw3MUVnQjtFdUw4MUVoQixjaEtuNUVTO0VnS281RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFZSTtFQUNJO0FBNzFHUjtBQSsxR1E7RUFDSTtBQTcxR1o7QXpLeFdJO0V5S29zSEk7SUFJUTtFQTUxR2Q7QUFDRjtBQSsxR1E7RUFDSTtFQUNBLGNoS3B1SFc7RWdLcXVIWDtBQTcxR1o7QXpLbFhJO0V5SzRzSEk7SUFNUTtFQTUxR2Q7QUFDRixDOzs7O0F2THZaQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QXNLOE5KOztBdEszTkE7RUFDSTtBc0s4Tko7O0FwS3BPSTtFQURKO0lBRVE7RW9Ld09OO0FBQ0Y7O0FwS3JPQTtFQUNJO0VBQ0E7RUFDQTtBb0t3T0o7QXBLdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RW9LeU9OO0FBQ0Y7O0FwS3RPQTtFQUdZO0lBQ0k7SUFDQTtFb0t1T2Q7RXBLek9VO0lBQ0k7SUFDQTtFb0syT2Q7RXBLN09VO0lBQ0k7SUFDQTtFb0srT2Q7RXBLalBVO0lBQ0k7SUFDQTtFb0ttUGQ7RXBLclBVO0lBQ0k7SUFDQTtFb0t1UGQ7RXBLelBVO0lBQ0k7SUFDQTtFb0syUGQ7RXBLN1BVO0lBQ0k7SUFDQTtFb0srUGQ7RXBLalFVO0lBQ0k7SUFDQTtFb0ttUWQ7RXBLclFVO0lBQ0k7SUFDQTtFb0t1UWQ7RXBLelFVO0lBQ0k7SUFDQTtFb0syUWQ7RXBLN1FVO0lBQ0k7SUFDQTtFb0srUWQ7RXBLalJVO0lBQ0k7SUFDQTtFb0ttUmQ7RXBLOVFFO0lBQ0k7RW9LZ1JOO0FBQ0Y7QXBLM1FRO0VBREo7SUFFUTtFb0s4UVY7QUFDRjs7QW5LblRBOztFQUFBO0FDQUE7O0VBQUE7QWtLNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0N4TDcxRWdCO0V3TDgxRWhCLGNqS241RVM7RWlLbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQWFRO0VBQ0k7RUFDQTtFQUNBO0VBQ0EsY2pLM3RIVztFaUs0dEhYO0FBOTFHWjtBMUt6V0k7RTBLa3NISTtJQVFRO0lBQ0E7RUE3MUdkO0FBQ0Y7QTFLL1dJO0UwSytzSEk7SUFFUTtRQUFBO1lBQUE7RUE5MUdkO0FBQ0YsQzs7OztBeExwWkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0F1SzhOSjs7QXZLM05BO0VBQ0k7QXVLOE5KOztBcktwT0k7RUFESjtJQUVRO0VxS3dPTjtBQUNGOztBcktyT0E7RUFDSTtFQUNBO0VBQ0E7QXFLd09KO0FyS3RPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0VxS3lPTjtBQUNGOztBckt0T0E7RUFHWTtJQUNJO0lBQ0E7RXFLdU9kO0VyS3pPVTtJQUNJO0lBQ0E7RXFLMk9kO0VySzdPVTtJQUNJO0lBQ0E7RXFLK09kO0VyS2pQVTtJQUNJO0lBQ0E7RXFLbVBkO0VyS3JQVTtJQUNJO0lBQ0E7RXFLdVBkO0VyS3pQVTtJQUNJO0lBQ0E7RXFLMlBkO0VySzdQVTtJQUNJO0lBQ0E7RXFLK1BkO0VyS2pRVTtJQUNJO0lBQ0E7RXFLbVFkO0VyS3JRVTtJQUNJO0lBQ0E7RXFLdVFkO0VyS3pRVTtJQUNJO0lBQ0E7RXFLMlFkO0VySzdRVTtJQUNJO0lBQ0E7RXFLK1FkO0VyS2pSVTtJQUNJO0lBQ0E7RXFLbVJkO0VySzlRRTtJQUNJO0VxS2dSTjtBQUNGO0FySzNRUTtFQURKO0lBRVE7RXFLOFFWO0FBQ0Y7O0FwS25UQTs7RUFBQTtBQ0FBOztFQUFBO0FtSzZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDekw3MUVnQjtFeUw4MUVoQixjbEtuNUVTO0VrS281RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFZSTtFQUNJO0VBQ0E7RUFDQTtBQTcxR1I7QTNLaFZJO0UySzBxSEE7SUFNUTtFQTUxR1Y7QUFDRjtBQTgxR1E7RUFDSSxjbEtodUhXO0FrS29ZdkI7QUE4MUdZO0VBQ0k7RUFDQTtBQTUxR2hCLEM7Ozs7QXpMblpBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBd0s4Tko7O0F4SzNOQTtFQUNJO0F3SzhOSjs7QXRLcE9JO0VBREo7SUFFUTtFc0t3T047QUFDRjs7QXRLck9BO0VBQ0k7RUFDQTtFQUNBO0FzS3dPSjtBdEt0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFc0t5T047QUFDRjs7QXRLdE9BO0VBR1k7SUFDSTtJQUNBO0VzS3VPZDtFdEt6T1U7SUFDSTtJQUNBO0VzSzJPZDtFdEs3T1U7SUFDSTtJQUNBO0VzSytPZDtFdEtqUFU7SUFDSTtJQUNBO0VzS21QZDtFdEtyUFU7SUFDSTtJQUNBO0VzS3VQZDtFdEt6UFU7SUFDSTtJQUNBO0VzSzJQZDtFdEs3UFU7SUFDSTtJQUNBO0VzSytQZDtFdEtqUVU7SUFDSTtJQUNBO0VzS21RZDtFdEtyUVU7SUFDSTtJQUNBO0VzS3VRZDtFdEt6UVU7SUFDSTtJQUNBO0VzSzJRZDtFdEs3UVU7SUFDSTtJQUNBO0VzSytRZDtFdEtqUlU7SUFDSTtJQUNBO0VzS21SZDtFdEs5UUU7SUFDSTtFc0tnUk47QUFDRjtBdEszUVE7RUFESjtJQUVRO0VzSzhRVjtBQUNGOztBcktuVEE7O0VBQUE7QUNBQTs7RUFBQTtBb0s2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3QzFMNzFFZ0I7RTBMODFFaEIsY25LbjVFUztFbUtvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBWUk7RUFDSTtBQTcxR1I7QUErMUdRO0VBQ0k7RUFDQTtBQTcxR1o7QUFrMkdnQjtFQUNJO0FBaDJHcEI7QUFvMkdZO0VBQ0k7RUFDQSxjbktsdkhLO0FtS2dackIsQzs7OztBMUxoWkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0F5SzhOSjs7QXpLM05BO0VBQ0k7QXlLOE5KOztBdktwT0k7RUFESjtJQUVRO0V1S3dPTjtBQUNGOztBdktyT0E7RUFDSTtFQUNBO0VBQ0E7QXVLd09KO0F2S3RPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0V1S3lPTjtBQUNGOztBdkt0T0E7RUFHWTtJQUNJO0lBQ0E7RXVLdU9kO0V2S3pPVTtJQUNJO0lBQ0E7RXVLMk9kO0V2SzdPVTtJQUNJO0lBQ0E7RXVLK09kO0V2S2pQVTtJQUNJO0lBQ0E7RXVLbVBkO0V2S3JQVTtJQUNJO0lBQ0E7RXVLdVBkO0V2S3pQVTtJQUNJO0lBQ0E7RXVLMlBkO0V2SzdQVTtJQUNJO0lBQ0E7RXVLK1BkO0V2S2pRVTtJQUNJO0lBQ0E7RXVLbVFkO0V2S3JRVTtJQUNJO0lBQ0E7RXVLdVFkO0V2S3pRVTtJQUNJO0lBQ0E7RXVLMlFkO0V2SzdRVTtJQUNJO0lBQ0E7RXVLK1FkO0V2S2pSVTtJQUNJO0lBQ0E7RXVLbVJkO0V2SzlRRTtJQUNJO0V1S2dSTjtBQUNGO0F2SzNRUTtFQURKO0lBRVE7RXVLOFFWO0FBQ0Y7O0F0S25UQTs7RUFBQTtBQ0FBOztFQUFBO0FxSzZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDM0w3MUVnQjtFMkw4MUVoQixjcEtuNUVTO0VvS281RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFhUTtFQUNJO0FBOTFHWjtBQWkyR1E7RUFDSTtFQUNBO0VBQUE7RUFBQTtFQUNBO0VBQ0E7TUFBQTtVQUFBO0VBQ0E7RUFBQTtFQUFBO0FBLzFHWjtBQWsyR1E7RUFDSTtBQWgyR1o7QUFrMkdZO0VBQ0ksY3BLbHRIUTtFb0ttdEhSO0FBaDJHaEI7QUFxMkdZO0VBQ0k7QUFuMkdoQixDOzs7O0EzTHRaQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QTBLOE5KOztBMUszTkE7RUFDSTtBMEs4Tko7O0F4S3BPSTtFQURKO0lBRVE7RXdLd09OO0FBQ0Y7O0F4S3JPQTtFQUNJO0VBQ0E7RUFDQTtBd0t3T0o7QXhLdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RXdLeU9OO0FBQ0Y7O0F4S3RPQTtFQUdZO0lBQ0k7SUFDQTtFd0t1T2Q7RXhLek9VO0lBQ0k7SUFDQTtFd0syT2Q7RXhLN09VO0lBQ0k7SUFDQTtFd0srT2Q7RXhLalBVO0lBQ0k7SUFDQTtFd0ttUGQ7RXhLclBVO0lBQ0k7SUFDQTtFd0t1UGQ7RXhLelBVO0lBQ0k7SUFDQTtFd0syUGQ7RXhLN1BVO0lBQ0k7SUFDQTtFd0srUGQ7RXhLalFVO0lBQ0k7SUFDQTtFd0ttUWQ7RXhLclFVO0lBQ0k7SUFDQTtFd0t1UWQ7RXhLelFVO0lBQ0k7SUFDQTtFd0syUWQ7RXhLN1FVO0lBQ0k7SUFDQTtFd0srUWQ7RXhLalJVO0lBQ0k7SUFDQTtFd0ttUmQ7RXhLOVFFO0lBQ0k7RXdLZ1JOO0FBQ0Y7QXhLM1FRO0VBREo7SUFFUTtFd0s4UVY7QUFDRjs7QXZLblRBOztFQUFBO0FDQUE7O0VBQUE7QXNLNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0M1TDcxRWdCO0U0TDgxRWhCLGNyS241RVM7RXFLbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQVlJO0VBQ0k7RUFDQTtFQUFBO0VBQUE7RUFDQTtNQUFBO1VBQUE7RUFDQTtNQUFBO1VBQUE7RUFDQSxtQnJLdnRIZTtBcUswWHZCO0FBKzFHUTtFQUNJO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUE5MUdaO0FBZzJHWTtFQUVJO0FBLzFHaEI7QUFrMkdZO0VBQ0k7QUFoMkdoQjtBQW8yR1E7RUFDSTtFQUNBO0VBQ0Esa0JwSWh3SFk7RW9JaXdIWixzQnJLNXZIVTtFcUs2dkhWO1VBQUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFakx0dkhSLGdEQUZpQjtFQUVqQix3Q0FGaUI7QWlMdVpyQjtBQW8yR1k7RUFHSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO1VBQUE7RUFDQTtFQUNBO0VBQ0EsbUJyS3p3SE87RVpNbkIsZ0RBRmlCO0VBRWpCLHdDQUZpQjtBaUxrYXJCO0FBczJHWTtFQUNJO0VBQ0E7QUFwMkdoQjtBQXUyR1k7RUFDSSxtQnJLNXhISztBcUt1YnJCO0FBczJHZ0I7RUFFSSxnQnJLMXhIRTtBcUtxYnRCO0FBeTJHWTtFQUNJLGdCcksveEhNO0VxS2d5SE47RUFDQTtVQUFBO0FBdjJHaEI7QUF5MkdnQjtFQUVJLG1Ccks1eEhHO0FxS29idkI7QUEyMkdnQjtFQUVJLGdCcksxeUhFO0FxS2djdEI7QUEyMkdvQjtFQUVJLG1CcktweUhEO0FxSzBidkI7QUFnM0dRO0VBQ0k7QUE5MkdaO0E5SzNhSTtFOEs0eEhJO0lBRVE7SUFDQTtFQS8yR2Q7QUFDRjtBQWszR1E7RUFDSTtFQUNBO0VBQ0E7QUFoM0daLEM7Ozs7QUN0ZEEsNEJBQTRCLDBCQUEwQixDQUFDLHVDQUF1QyxDQUFDLHdCQUF3QixDQUFDLHFCQUFxQixDQUFDLGlCQUFpQixDQUFDLG9CQUFvQixDQUFDLHFCQUFxQixDQUFDLGdCQUFnQixDQUE0Qiw2QkFBb0IsQ0FBcEIscUJBQXFCLENBQUMsYUFBYSxpQkFBaUIsQ0FBQywwQkFBMEIsVUFBVSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsZUFBZSxlQUFlLENBQUMsU0FBUyxDQUFDLDJCQUEyQixxQkFBcUIsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLHdCQUF3QixDQUFDLDRCQUE0QixDQUFDLG1DQUFtQyxDQUFDLG9CQUFvQixDQUFDLDRCQUFtQixDQUFuQixvQkFBb0IsQ0FBQywrQ0FBK0MsTUFBTSxDQUFDLFVBQVUsQ0FBQyw0QkFBNEIsU0FBUyxDQUFDLE9BQU8sQ0FBQyw4QkFBOEIsUUFBUSxDQUFDLGFBQWEsa0NBQWtDLENBQUMsMEJBQTBCLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLFdBQVcsQ0FBQyxVQUFVLENBQUMsMkRBQTJELGdDQUFnQyxDQUFDLHdDQUF1QixDQUF2QixnQ0FBdUIsQ0FBdkIsd0JBQXVCLENBQXZCLCtDQUF3QixDQUFDLG1CQUFtQix3QkFBd0IsQ0FBQyxpQkFBaUIsV0FBVyxDQUFDLDhCQUE4QixVQUFVLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsZUFBZSxVQUFVLENBQUMsNEJBQTRCLFVBQVUsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQywrQ0FBK0MsVUFBVSxDQUFDLFVBQVUsQ0FBQyxhQUFhLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLHdCQUF3QixDQUFDLDhEQUFxRCxDQUFyRCxzREFBc0QsQ0FBQyxlQUFlLGlCQUFpQixDQUFDLGNBQWMsa0JBQWtCLENBQUMsZ0JBQWdCLGdCQUFnQixDQUFDLCtCQUErQixnQkFBZ0IsQ0FBQyxhQUFhLHdCQUF3QixDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsaUZBQXdFLENBQXhFLHlFQUF5RSxDQUFDLGFBQWEsOEVBQXFFLENBQXJFLHNFQUFzRSxDQUFDLHVDQUF1QyxVQUFVLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsU0FBUyxDQUFDLHFFQUFxRSxVQUFVLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsa0NBQWtDLFFBQVEsQ0FBQyx5QkFBeUIsa0JBQWtCLENBQUMsc0VBQXNFLGtCQUFrQixDQUFDLHdCQUFtRCw2QkFBb0IsQ0FBcEIscUJBQXFCLENBQUMsV0FBVyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsWUFBWSxpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyxnQkFBZ0IsVUFBVSxDQUFDLGNBQWMsQ0FBQyxhQUFhLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsZUFBZSxDQUFDLG1CQUFtQixlQUFlLENBQUMsc0JBQXNCLGNBQWMsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsdUJBQXVCLHFDQUFxQyxDQUFDLDZCQUE2QixDQUFDLGlDQUFpQyxvQ0FBb0MsQ0FBQyw0QkFBNEIsQ0FBQyxvQ0FBb0MsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyx3Q0FBd0MsV0FBVyxDQUFDLDBDQUEwQyxXQUFXLENBQUMsb0JBQW9CLGNBQWMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxxQkFBcUIsbUNBQW1DLENBQUMsMkJBQTJCLENBQUMsaUJBQWlCLENBQUMsK0JBQStCLGtDQUFrQyxDQUFDLDBCQUEwQixDQUFDLGtDQUFrQyxTQUFTLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxzQ0FBc0MsVUFBVSxDQUFDLHdDQUF3QyxVQUFVLENBQUMsY0FBYyxhQUFhLENBQUMsaUJBQWlCLENBQUMsd0JBQXdCLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLENBQUMsK0JBQStCLG1DQUFtQyxDQUFDLDJCQUEyQixDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsNkJBQTZCLG1DQUFtQyxDQUFDLDJCQUEyQixDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsNENBQTRDLGtDQUFrQyxDQUFDLDBCQUEwQixDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsMENBQTBDLG9DQUFvQyxDQUFDLDRCQUE0QixDQUFDLFFBQVEsQ0FBQyxVQUFVLEM7Ozs7QTdMQTNuSTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QTRLK05KOztBNUs1TkE7RUFDSTtBNEsrTko7O0ExS3JPSTtFQURKO0lBRVE7RTBLeU9OO0FBQ0Y7O0ExS3RPQTtFQUNJO0VBQ0E7RUFDQTtBMEt5T0o7QTFLdk9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RTBLME9OO0FBQ0Y7O0ExS3ZPQTtFQUdZO0lBQ0k7SUFDQTtFMEt3T2Q7RTFLMU9VO0lBQ0k7SUFDQTtFMEs0T2Q7RTFLOU9VO0lBQ0k7SUFDQTtFMEtnUGQ7RTFLbFBVO0lBQ0k7SUFDQTtFMEtvUGQ7RTFLdFBVO0lBQ0k7SUFDQTtFMEt3UGQ7RTFLMVBVO0lBQ0k7SUFDQTtFMEs0UGQ7RTFLOVBVO0lBQ0k7SUFDQTtFMEtnUWQ7RTFLbFFVO0lBQ0k7SUFDQTtFMEtvUWQ7RTFLdFFVO0lBQ0k7SUFDQTtFMEt3UWQ7RTFLMVFVO0lBQ0k7SUFDQTtFMEs0UWQ7RTFLOVFVO0lBQ0k7SUFDQTtFMEtnUmQ7RTFLbFJVO0lBQ0k7SUFDQTtFMEtvUmQ7RTFLL1FFO0lBQ0k7RTBLaVJOO0FBQ0Y7QTFLNVFRO0VBREo7SUFFUTtFMEsrUVY7QUFDRjs7QXpLcFRBOztFQUFBO0FDQUE7O0VBQUE7QXdLNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWlMWjs7QUE5SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0M5TDcxRWdCO0U4TDgxRWhCLGN2S241RVM7RXVLbzVFVDtBQXJpRVo7QUF1aUVZO0VBQ0k7QUFyaUVoQjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBMGlFZ0I7RUFDSTtBQXhpRXBCO0FBNmlFUTtFQUNJO0FBM2lFWjs7QUEreEZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQWlCQTtFQUNJO0VBQUE7RUFBQTtFQUNBO0VBQUE7TUFBQTtVQUFBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7VUFBQTtFQUNBO0FBajJHSjtBQW0yR0k7RUFDSTtFQUNBLFVsSWp2SGE7RWtJa3ZIYjtFQUNBO1VBQUE7RUFDQTtBQWoyR1I7QUFvMkdJO0VBQ0kseUJ2Szd1SGU7RXVLOHVIZixXQXZCSztFQXdCTDtFQUNBO0FBbDJHUjtBQXEyR0k7RUFDSSx5QnZLL3ZIYTtBdUs0WnJCO0FBczJHSTtFbkxsdkhBLHVEQUZpQjtFQUVqQiwrQ0FGaUI7RUFFakIsdUNBRmlCO0VBRWpCLDRFQUZpQjtFbUxzdkhiLFdBaENPO0VBaUNQLFlBbENRO0VBbUNSO0VBQ0E7VUFBQTtFQUNBO0VBQ0EseUJ2S3p3SGE7QXVLcWFyQjtBQXMyR1E7RUFFSTtBQXIyR1o7QUF3MkdRO0VBQ0k7RUFDQTtVQUFBO0FBdDJHWjtBQTIyR1E7RUFDSTtBQXoyR1o7QUEyMkdZO0VBQ0k7RUFDQTtBQXoyR2hCLEM7Ozs7QTlMbmJBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBNks4Tko7O0E3SzNOQTtFQUNJO0E2SzhOSjs7QTNLcE9JO0VBREo7SUFFUTtFMkt3T047QUFDRjs7QTNLck9BO0VBQ0k7RUFDQTtFQUNBO0EyS3dPSjtBM0t0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFMkt5T047QUFDRjs7QTNLdE9BO0VBR1k7SUFDSTtJQUNBO0UyS3VPZDtFM0t6T1U7SUFDSTtJQUNBO0UySzJPZDtFM0s3T1U7SUFDSTtJQUNBO0UySytPZDtFM0tqUFU7SUFDSTtJQUNBO0UyS21QZDtFM0tyUFU7SUFDSTtJQUNBO0UyS3VQZDtFM0t6UFU7SUFDSTtJQUNBO0UySzJQZDtFM0s3UFU7SUFDSTtJQUNBO0UySytQZDtFM0tqUVU7SUFDSTtJQUNBO0UyS21RZDtFM0tyUVU7SUFDSTtJQUNBO0UyS3VRZDtFM0t6UVU7SUFDSTtJQUNBO0UySzJRZDtFM0s3UVU7SUFDSTtJQUNBO0UySytRZDtFM0tqUlU7SUFDSTtJQUNBO0UyS21SZDtFM0s5UUU7SUFDSTtFMktnUk47QUFDRjtBM0szUVE7RUFESjtJQUVRO0UySzhRVjtBQUNGOztBMUtuVEE7O0VBQUE7QUNBQTs7RUFBQTtBeUs2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Qy9MNzFFZ0I7RStMODFFaEIsY3hLbjVFUztFd0tvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBV0E7QUFFQTtFQUNJO0VBQ0E7RUFDQTtVQUFBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQTcxR0o7O0FBKzFHQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUE1MUdKO0FBODFHSTtFQUNJO0FBNTFHUjtBQSsxR0k7RUFDSTtFQUNBO0FBNzFHUjs7QUFnMkdBOztFQUVJO0VBSUE7QUE3MUdKOztBQWcyR0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUE3MUdKO0FBKzFHSTtFQUVJO0VBQ0E7QUE5MUdSO0FBaTJHSTtFQUNJO0FBLzFHUjtBQWsyR0k7RUFDSTtBQWgyR1I7O0FBbTJHQTtFQUNJO0VBQ0E7RUFDQTtFQVdBO0FBMTJHSjtBQWcyR0k7RUFDSTtBQTkxR1I7QUFnMkdJO0VBQ0k7QUE5MUdSO0FBZzJHSTtFQUNJO0FBOTFHUjtBQW0yR0k7RUFDSTtBQWoyR1I7QUFvMkdJO0VBQ0k7QUFsMkdSO0FBcTJHSTtFQUNJO0FBbjJHUjtBQXMyR0k7RUFDSTtFQUNBO0VBQ0E7QUFwMkdSOztBQXUyR0E7RUFDSTtBQXAyR0osQzs7OztBL0w5ZEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0E4SzhOSjs7QTlLM05BO0VBQ0k7QThLOE5KOztBNUtwT0k7RUFESjtJQUVRO0U0S3dPTjtBQUNGOztBNUtyT0E7RUFDSTtFQUNBO0VBQ0E7QTRLd09KO0E1S3RPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0U0S3lPTjtBQUNGOztBNUt0T0E7RUFHWTtJQUNJO0lBQ0E7RTRLdU9kO0U1S3pPVTtJQUNJO0lBQ0E7RTRLMk9kO0U1SzdPVTtJQUNJO0lBQ0E7RTRLK09kO0U1S2pQVTtJQUNJO0lBQ0E7RTRLbVBkO0U1S3JQVTtJQUNJO0lBQ0E7RTRLdVBkO0U1S3pQVTtJQUNJO0lBQ0E7RTRLMlBkO0U1SzdQVTtJQUNJO0lBQ0E7RTRLK1BkO0U1S2pRVTtJQUNJO0lBQ0E7RTRLbVFkO0U1S3JRVTtJQUNJO0lBQ0E7RTRLdVFkO0U1S3pRVTtJQUNJO0lBQ0E7RTRLMlFkO0U1SzdRVTtJQUNJO0lBQ0E7RTRLK1FkO0U1S2pSVTtJQUNJO0lBQ0E7RTRLbVJkO0U1SzlRRTtJQUNJO0U0S2dSTjtBQUNGO0E1SzNRUTtFQURKO0lBRVE7RTRLOFFWO0FBQ0Y7O0EzS25UQTs7RUFBQTtBQ0FBOztFQUFBO0EwSzZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDaE03MUVnQjtFZ004MUVoQixjektuNUVTO0V5S281RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFhUTtFQUNJO0VBQ0E7RXJMcHRIUiw0Q0FGaUI7RUFFakIsb0NBRmlCO0FxTHlYckI7QUFnMkdZO0VBQ0k7RUFDQTtBQTkxR2hCO0FBazJHUTtFQUNJO0lBQ0k7RUFoMkdkO0VBaTJHYztJQUNJO0VBLzFHbEI7RUFtMkdVO0lBQ0k7RUFqMkdkO0VBbzJHVTtJQUNJO0lBQ0E7SUFDQTtZQUFBO0VBbDJHZDtFQW0yR2M7SUFDSTtFQWoyR2xCO0FBQ0Y7QUFxMkdROztFQUVJLCtCOUxsd0hzQjtVOExrd0h0Qix1QjlMbHdIc0I7QThMK1psQztBQXMyR1E7RUFDSTtFQUNBO0FBcDJHWjtBQXMyR1k7RUFDSTtFQUNBO0FBcDJHaEI7QWxMMVlJO0VrTDR1SFE7SUFLUTtJQUNBO0VBbjJHbEI7QUFDRjtBQXcyR1k7RUFDSTtFQUFBO0VBQUE7QUF0MkdoQjtBQXkyR1k7RUFDSTtFQUFBO0VBQUE7RUFDQTtFQUNBO0FBdjJHaEI7QWxMeFpJO0VrTDR2SFE7SUFNUTtFQXQyR2xCO0FBQ0Y7QUF3MkdnQjtFQUNJO0VBQ0E7QUF0MkdwQjtBQTIyR2dCO0VBQ0ksc0J6S3h5SEU7QXlLK2J0QjtBQSsyR1k7RUFDSTtBQTcyR2hCO0FBZzNHWTtFQUNJO0FBOTJHaEI7QUFrM0dRO0VBQ0k7QUFoM0daO0FBazNHWTtFQUNJO0FBaDNHaEI7QWxMaGJJO0VrTDR4SEk7SUFRUTtFQWgzR2Q7RUFrM0djO0lBQ0k7RUFoM0dsQjtBQUNGO0FBcTNHWTtFQUNJO0VBQ0E7RUFDQTtBQW4zR2hCO0FsTDdiSTtFa0w2eUhRO0lBTVE7RUFsM0dsQjtBQUNGO0FBczNHUTtFQUNJO0VBQ0E7QUFwM0daO0FsTHRjSTtFa0x3ekhJO0lBS1E7RUFuM0dkO0FBQ0Y7QUFxM0dZO0VBQ0k7QUFuM0doQjtBbEw5Y0k7RWtMZzBIUTtJQUlRO0lBQ0E7RUFsM0dsQjtBQUNGO0FBcTNHWTtFQUNJO0VBQUE7RUFBQTtFQUNBO01BQUE7VUFBQTtFQUNBO01BQUE7VUFBQTtFQUNBO0FBbjNHaEI7QWxMMWRJO0VrTHkwSFE7SUFPUTtFQWwzR2xCO0FBQ0Y7QUFvM0dnQjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxrQ2hNcDBIUTtFZ01xMEhSO0VBQ0E7QUFsM0dwQjtBQW8zR29CO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtVQUFBO0VBQ0E7RUFDQTtFQUNBLG1CaE1uM0hGO0VnTW8zSEU7QUFsM0d4QjtBbExwZkk7RWtMbTFIWTtJQXVCUTtJQUNBO0VBbDNHdEI7QUFDRjtBQW8zR29CO0VBQ0k7QUFsM0d4QjtBQXMzR3dCO0VBQ0k7RUFDQTtFQUNBLGtDaE1qMkhBO0VnTWsySEE7QUFwM0c1QjtBQTIzR1E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFk3THo1SGtCO0U2TDA1SGxCO1VBQUE7QUF6M0daO0FsTDlnQkk7RWtMODNISTtJQVlRO0VBeDNHZDtBQUNGO0FBMDNHWTtFQUNJO0VBQ0E7QUF4M0doQjtBQTQzR1E7RUFDSTtFQUNBO0FBMTNHWjtBbEwzaEJJO0VrTG01SEk7SUFLUTtFQXozR2Q7QUFDRjtBbExoaUJJO0VrTG01SEk7SUFVUTtFQXozR2Q7QUFDRjtBQTQzR1E7RUFDSTtFQUNBO0FBMTNHWjtBbEx6aUJJO0VrTGk2SEk7SUFLUTtJQUNBO0VBejNHZDtBQUNGO0FsTC9pQkk7RWtMaTZISTtJQVVRO0VBeDNHZDtBQUNGO0FBNDNHWTtFQUNJO0FBMTNHaEI7QUE2M0dZO0VBQ0k7QUEzM0doQjtBQTgzR1k7RUFDSTtBQTUzR2hCLEM7Ozs7QWhNN2xCQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QStLOE5KOztBL0szTkE7RUFDSTtBK0s4Tko7O0E3S3BPSTtFQURKO0lBRVE7RTZLd09OO0FBQ0Y7O0E3S3JPQTtFQUNJO0VBQ0E7RUFDQTtBNkt3T0o7QTdLdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RTZLeU9OO0FBQ0Y7O0E3S3RPQTtFQUdZO0lBQ0k7SUFDQTtFNkt1T2Q7RTdLek9VO0lBQ0k7SUFDQTtFNksyT2Q7RTdLN09VO0lBQ0k7SUFDQTtFNksrT2Q7RTdLalBVO0lBQ0k7SUFDQTtFNkttUGQ7RTdLclBVO0lBQ0k7SUFDQTtFNkt1UGQ7RTdLelBVO0lBQ0k7SUFDQTtFNksyUGQ7RTdLN1BVO0lBQ0k7SUFDQTtFNksrUGQ7RTdLalFVO0lBQ0k7SUFDQTtFNkttUWQ7RTdLclFVO0lBQ0k7SUFDQTtFNkt1UWQ7RTdLelFVO0lBQ0k7SUFDQTtFNksyUWQ7RTdLN1FVO0lBQ0k7SUFDQTtFNksrUWQ7RTdLalJVO0lBQ0k7SUFDQTtFNkttUmQ7RTdLOVFFO0lBQ0k7RTZLZ1JOO0FBQ0Y7QTdLM1FRO0VBREo7SUFFUTtFNks4UVY7QUFDRjs7QTVLblRBOztFQUFBO0FDQUE7O0VBQUE7QTJLNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0NqTTcxRWdCO0VpTTgxRWhCLGMxS241RVM7RTBLbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQWFRO0VBQ0k7QUE5MUdaO0FBaTJHUTtFQUNJO0FBLzFHWixDOzs7O0FqTXhZQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QWdMOE5KOztBaEwzTkE7RUFDSTtBZ0w4Tko7O0E5S3BPSTtFQURKO0lBRVE7RThLd09OO0FBQ0Y7O0E5S3JPQTtFQUNJO0VBQ0E7RUFDQTtBOEt3T0o7QTlLdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RThLeU9OO0FBQ0Y7O0E5S3RPQTtFQUdZO0lBQ0k7SUFDQTtFOEt1T2Q7RTlLek9VO0lBQ0k7SUFDQTtFOEsyT2Q7RTlLN09VO0lBQ0k7SUFDQTtFOEsrT2Q7RTlLalBVO0lBQ0k7SUFDQTtFOEttUGQ7RTlLclBVO0lBQ0k7SUFDQTtFOEt1UGQ7RTlLelBVO0lBQ0k7SUFDQTtFOEsyUGQ7RTlLN1BVO0lBQ0k7SUFDQTtFOEsrUGQ7RTlLalFVO0lBQ0k7SUFDQTtFOEttUWQ7RTlLclFVO0lBQ0k7SUFDQTtFOEt1UWQ7RTlLelFVO0lBQ0k7SUFDQTtFOEsyUWQ7RTlLN1FVO0lBQ0k7SUFDQTtFOEsrUWQ7RTlLalJVO0lBQ0k7SUFDQTtFOEttUmQ7RTlLOVFFO0lBQ0k7RThLZ1JOO0FBQ0Y7QTlLM1FRO0VBREo7SUFFUTtFOEs4UVY7QUFDRjs7QTdLblRBOztFQUFBO0FDQUE7O0VBQUE7QTRLNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0NsTTcxRWdCO0VrTTgxRWhCLGMzS241RVM7RTJLbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQVlJO0VBQ0k7RUFDQTtFQUNBO0VBQ0Esa0IxSXJ1SGdCO0UwSXN1SGhCO0FBNzFHUjtBcEx6V0k7RW9MaXNIQTtJQVFRO0lBQ0E7SUFDQTtJQUNBLGlCL0l6dUhnQjtFK0k2WTFCO0FBQ0Y7QUE4MUdRO0VBQ0k7RUFDQTtFQUNBO0FBNTFHWjtBcEx0WEk7RW9MK3NISTtJQU1RO0VBMzFHZDtBQUNGO0FBODFHUTtFQUNJO0VBQUE7RUFBQTtFQUNBO0VBQUE7TUFBQTtVQUFBO0VBQ0E7TUFBQTtVQUFBO0VBQ0E7TUFBQTtVQUFBO0VBQ0E7QUE1MUdaO0FBKzFHUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0FBNzFHWixDOzs7O0FsTXhhQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QWlMOE5KOztBakwzTkE7RUFDSTtBaUw4Tko7O0EvS3BPSTtFQURKO0lBRVE7RStLd09OO0FBQ0Y7O0EvS3JPQTtFQUNJO0VBQ0E7RUFDQTtBK0t3T0o7QS9LdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RStLeU9OO0FBQ0Y7O0EvS3RPQTtFQUdZO0lBQ0k7SUFDQTtFK0t1T2Q7RS9Lek9VO0lBQ0k7SUFDQTtFK0syT2Q7RS9LN09VO0lBQ0k7SUFDQTtFK0srT2Q7RS9LalBVO0lBQ0k7SUFDQTtFK0ttUGQ7RS9LclBVO0lBQ0k7SUFDQTtFK0t1UGQ7RS9LelBVO0lBQ0k7SUFDQTtFK0syUGQ7RS9LN1BVO0lBQ0k7SUFDQTtFK0srUGQ7RS9LalFVO0lBQ0k7SUFDQTtFK0ttUWQ7RS9LclFVO0lBQ0k7SUFDQTtFK0t1UWQ7RS9LelFVO0lBQ0k7SUFDQTtFK0syUWQ7RS9LN1FVO0lBQ0k7SUFDQTtFK0srUWQ7RS9LalJVO0lBQ0k7SUFDQTtFK0ttUmQ7RS9LOVFFO0lBQ0k7RStLZ1JOO0FBQ0Y7QS9LM1FRO0VBREo7SUFFUTtFK0s4UVY7QUFDRjs7QTlLblRBOztFQUFBO0FDQUE7O0VBQUE7QTZLNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0NuTTcxRWdCO0VtTTgxRWhCLGM1S241RVM7RTRLbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQVlJO0VBQ0k7RUFBQTtFQUFBO0VBQ0EsaUJoSmp1SGE7RWdKa3VIYixtQmhKanVIb0I7RWdKa3VIcEI7RUFDQTtNQUFBO1VBQUE7QUE3MUdSO0FyTHpXSTtFcUxpc0hBO0lBUVE7SUFDQTtJQUNBO1FBQUE7WUFBQTtFQTUxR1Y7QUFDRjtBQTgxR1E7RUFDSTtFQUNBLHlCNUtqdUhXO0U0S2t1SFg7RUFDQTtBQTUxR1o7QXJMdFhJO0VxTDhzSEk7SUFPUTtJQUNBLHdDbk1qc0hZO0VtTXNXMUI7QUFDRjtBQTgxR1E7RUFDSTtFQUFBO0VBQUE7RUFDQTtNQUFBO1VBQUE7RUFDQTtBQTUxR1o7QUErMUdRO0VBQ0k7TUFBQTtVQUFBO0VBQ0E7QUE3MUdaO0FyTHJZSTtFcUxndUhJO0lBS1E7UUFBQTtZQUFBO0VBNTFHZDtBQUNGLEM7Ozs7QW5NMWFBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBa0w4Tko7O0FsTDNOQTtFQUNJO0FrTDhOSjs7QWhMcE9JO0VBREo7SUFFUTtFZ0x3T047QUFDRjs7QWhMck9BO0VBQ0k7RUFDQTtFQUNBO0FnTHdPSjtBaEx0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFZ0x5T047QUFDRjs7QWhMdE9BO0VBR1k7SUFDSTtJQUNBO0VnTHVPZDtFaEx6T1U7SUFDSTtJQUNBO0VnTDJPZDtFaEw3T1U7SUFDSTtJQUNBO0VnTCtPZDtFaExqUFU7SUFDSTtJQUNBO0VnTG1QZDtFaExyUFU7SUFDSTtJQUNBO0VnTHVQZDtFaEx6UFU7SUFDSTtJQUNBO0VnTDJQZDtFaEw3UFU7SUFDSTtJQUNBO0VnTCtQZDtFaExqUVU7SUFDSTtJQUNBO0VnTG1RZDtFaExyUVU7SUFDSTtJQUNBO0VnTHVRZDtFaEx6UVU7SUFDSTtJQUNBO0VnTDJRZDtFaEw3UVU7SUFDSTtJQUNBO0VnTCtRZDtFaExqUlU7SUFDSTtJQUNBO0VnTG1SZDtFaEw5UUU7SUFDSTtFZ0xnUk47QUFDRjtBaEwzUVE7RUFESjtJQUVRO0VnTDhRVjtBQUNGOztBL0tuVEE7O0VBQUE7QUNBQTs7RUFBQTtBOEs2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Q3BNNzFFZ0I7RW9NODFFaEIsYzdLbjVFUztFNktvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBWUk7RUFDSTtFQUFBO0VBQUE7RUFDQTtFQUFBO01BQUE7VUFBQTtFQUNBLHlCN0tydEhlO0U2S3N0SGY7TUFBQTtVQUFBO0VBQ0E7TUFBQTtVQUFBO0FBNzFHUjtBQSsxR1E7RUFDSTtNQUFBO1VBQUE7RUFDQTtFQUNBO0VBQ0E7RUFDQSxjN0tsdUhXO0E2S3FZdkI7QUErMUdZO0VBQ0k7QUE3MUdoQjtBQWkyR1E7RUFDSTtNQUFBO1VBQUE7RUFDQTtBQS8xR1o7QUFrMkdRO0VBQ0ksYzdLL3VIVztFNktndkhYO0VBQ0E7QUFoMkdaO0FBbTJHUTtFQUNJLGM3S3J2SFc7RTZLc3ZIWDtFQUNBO0VBQ0E7QUFqMkdaO0FBbzJHUTtFQUNJO0FBbDJHWjtBQXEyR1E7RUFDSTtBQW4yR1osQzs7OztBcE14YUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDbERBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FDWEE7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNFQTtFQUNJO0FtTDhOSjs7QW5MM05BO0VBQ0k7QW1MOE5KOztBakxwT0k7RUFESjtJQUVRO0VpTHdPTjtBQUNGOztBakxyT0E7RUFDSTtFQUNBO0VBQ0E7QWlMd09KO0FqTHRPSTtFQUxKO0lBTVE7SUFDQTtJQUNBO0VpTHlPTjtBQUNGOztBakx0T0E7RUFHWTtJQUNJO0lBQ0E7RWlMdU9kO0VqTHpPVTtJQUNJO0lBQ0E7RWlMMk9kO0VqTDdPVTtJQUNJO0lBQ0E7RWlMK09kO0VqTGpQVTtJQUNJO0lBQ0E7RWlMbVBkO0VqTHJQVTtJQUNJO0lBQ0E7RWlMdVBkO0VqTHpQVTtJQUNJO0lBQ0E7RWlMMlBkO0VqTDdQVTtJQUNJO0lBQ0E7RWlMK1BkO0VqTGpRVTtJQUNJO0lBQ0E7RWlMbVFkO0VqTHJRVTtJQUNJO0lBQ0E7RWlMdVFkO0VqTHpRVTtJQUNJO0lBQ0E7RWlMMlFkO0VqTDdRVTtJQUNJO0lBQ0E7RWlMK1FkO0VqTGpSVTtJQUNJO0lBQ0E7RWlMbVJkO0VqTDlRRTtJQUNJO0VpTGdSTjtBQUNGO0FqTDNRUTtFQURKO0lBRVE7RWlMOFFWO0FBQ0Y7O0FoTG5UQTs7RUFBQTtBQ0FBOztFQUFBO0ErSzZDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQWlFUTtFQUNJO0VBQ0E7QUFnTFo7O0FBN0pBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeVNBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNEpBOztFQUFBO0FBc0NBOztFQUFBO0FBNm9DUTtFQUNJLHdDck03MUVnQjtFcU04MUVoQixjOUtuNUVTO0U4S281RVQ7QUF0aUVaO0FBd2lFWTtFQUNJO0FBdGlFaEI7QUF5aUVZO0VBQ0k7QUF2aUVoQjtBQTJpRWdCO0VBQ0k7QUF6aUVwQjtBQThpRVE7RUFDSTtBQTVpRVo7O0FBZ3lGQTtBQWlDQTs7RUFBQTtBQTBoQkE7O0VBQUE7QUFhSTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO1VBQUE7QUE5MUdSO0FBaTJHSTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtVQUFBO0FBLzFHUjtBQWsyR0k7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBaDJHUjtBQW0yR1k7O0VBRUk7VUFBQTtBQWoyR2hCLEM7Ozs7QUM5WkEsZ0JBQWdCO0F0TUFoQjs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QW9MK05KOztBcEw1TkE7RUFDSTtBb0wrTko7O0FsTHJPSTtFQURKO0lBRVE7RWtMeU9OO0FBQ0Y7O0FsTHRPQTtFQUNJO0VBQ0E7RUFDQTtBa0x5T0o7QWxMdk9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RWtMME9OO0FBQ0Y7O0FsTHZPQTtFQUdZO0lBQ0k7SUFDQTtFa0x3T2Q7RWxMMU9VO0lBQ0k7SUFDQTtFa0w0T2Q7RWxMOU9VO0lBQ0k7SUFDQTtFa0xnUGQ7RWxMbFBVO0lBQ0k7SUFDQTtFa0xvUGQ7RWxMdFBVO0lBQ0k7SUFDQTtFa0x3UGQ7RWxMMVBVO0lBQ0k7SUFDQTtFa0w0UGQ7RWxMOVBVO0lBQ0k7SUFDQTtFa0xnUWQ7RWxMbFFVO0lBQ0k7SUFDQTtFa0xvUWQ7RWxMdFFVO0lBQ0k7SUFDQTtFa0x3UWQ7RWxMMVFVO0lBQ0k7SUFDQTtFa0w0UWQ7RWxMOVFVO0lBQ0k7SUFDQTtFa0xnUmQ7RWxMbFJVO0lBQ0k7SUFDQTtFa0xvUmQ7RWxML1FFO0lBQ0k7RWtMaVJOO0FBQ0Y7QWxMNVFRO0VBREo7SUFFUTtFa0wrUVY7QUFDRjs7QWpMcFRBOztFQUFBO0FDQUE7O0VBQUE7QWdMNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWlMWjs7QUE5SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0N0TTcxRWdCO0VzTTgxRWhCLGMvS241RVM7RStLbzVFVDtBQXJpRVo7QUF1aUVZO0VBQ0k7QUFyaUVoQjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBMGlFZ0I7RUFDSTtBQXhpRXBCO0FBNmlFUTtFQUNJO0FBM2lFWjs7QUEreEZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQWFRO0VBQ0k7RUFDQSxjL0t6dEhXO0UrSzB0SFg7RUFDQTtFQUNBO0VBQ0E7QUE3MUdaO0FBKzFHWTtFQUNJO0FBNzFHaEI7QUFnMkdZO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7VUFBQTtFQUNBO0VBQ0E7RUFDQTtBQTkxR2hCO0FBazJHUTtFQUNJO0VBQ0E7RUFDQTtFQUFBO0VBQ0E7QUFoMkdaO0FBazJHWTtFQUNJO0VBQUE7RUFBQTtBQWgyR2hCO0FBbzJHUTtFQUNJO0FBbDJHWjtBQW8yR1k7RUFDSTtFQUNBO0VBQ0E7QUFsMkdoQjtBQXEyR1k7RUFDSTtBQW4yR2hCO0FBdTJHUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO1VBQUE7QUFyMkdaLEM7Ozs7QXRNcGJBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ2xEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQ1hBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDRUE7RUFDSTtBcUw4Tko7O0FyTDNOQTtFQUNJO0FxTDhOSjs7QW5McE9JO0VBREo7SUFFUTtFbUx3T047QUFDRjs7QW5Mck9BO0VBQ0k7RUFDQTtFQUNBO0FtTHdPSjtBbkx0T0k7RUFMSjtJQU1RO0lBQ0E7SUFDQTtFbUx5T047QUFDRjs7QW5MdE9BO0VBR1k7SUFDSTtJQUNBO0VtTHVPZDtFbkx6T1U7SUFDSTtJQUNBO0VtTDJPZDtFbkw3T1U7SUFDSTtJQUNBO0VtTCtPZDtFbkxqUFU7SUFDSTtJQUNBO0VtTG1QZDtFbkxyUFU7SUFDSTtJQUNBO0VtTHVQZDtFbkx6UFU7SUFDSTtJQUNBO0VtTDJQZDtFbkw3UFU7SUFDSTtJQUNBO0VtTCtQZDtFbkxqUVU7SUFDSTtJQUNBO0VtTG1RZDtFbkxyUVU7SUFDSTtJQUNBO0VtTHVRZDtFbkx6UVU7SUFDSTtJQUNBO0VtTDJRZDtFbkw3UVU7SUFDSTtJQUNBO0VtTCtRZDtFbkxqUlU7SUFDSTtJQUNBO0VtTG1SZDtFbkw5UUU7SUFDSTtFbUxnUk47QUFDRjtBbkwzUVE7RUFESjtJQUVRO0VtTDhRVjtBQUNGOztBbExuVEE7O0VBQUE7QUNBQTs7RUFBQTtBaUw2Q0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUFpRVE7RUFDSTtFQUNBO0FBZ0xaOztBQTdKQTs7RUFBQTtBQXNLQTs7RUFBQTtBQTRDQTs7RUFBQTtBQXlTQTs7RUFBQTtBQW1EQTs7RUFBQTtBQXlDQTs7RUFBQTtBQW1MQTs7RUFBQTtBQTRCQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTRKQTs7RUFBQTtBQXNDQTs7RUFBQTtBQTZvQ1E7RUFDSSx3Q3ZNNzFFZ0I7RXVNODFFaEIsY2hMbjVFUztFZ0xvNUVUO0FBdGlFWjtBQXdpRVk7RUFDSTtBQXRpRWhCO0FBeWlFWTtFQUNJO0FBdmlFaEI7QUEyaUVnQjtFQUNJO0FBemlFcEI7QUE4aUVRO0VBQ0k7QUE1aUVaOztBQWd5RkE7QUFpQ0E7O0VBQUE7QUEwaEJBOztFQUFBO0FBWUk7RTNMbHRIQTtFQUNBO0VBQ0E7RUREQSx5Q0FGaUI7RUFFakIsaUNBRmlCO0U0TDB0SGI7RUFDQTtFQUNBLFkzSXh1SGE7RTJJeXVIYjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBLzFHUjtBQWkyR1E7RTNMN3VISjtFQUNBO0VBQ0E7QTJMK1lKO0FBaTJHWTtFQUNJO0FBLzFHaEI7QUFvMkdZO0VBQ0k7RUFDQTtFQUNBO1VBQUE7QUFsMkdoQjtBbEx6Wkk7RUFDSTtFQUNBO0VBQ0EsaUJrTDR0SGM7RWxMM3RIZDtFQUNBO0VBR0k7RUFDQTtFQUNBO1VBQUE7RUFDQSxzQmtMcXRIVTtBQTV6R3RCO0FBMDFHWTtFQUNJO0VBQ0E7RUFDQTtVQUFBO0FBeDFHaEI7QWxMemFJO0VBQ0k7RUFDQTtFQUNBLGlCa0w0dEhjO0VsTDN0SGQ7RUFDQTtFQVFJO0VBQ0E7RUFDQTtVQUFBO0VBQ0Esd0JrTGd0SFU7QUE1eUd0QjtBQWcxR1k7RUFDSTtFQUNBO0VBQ0E7VUFBQTtBQTkwR2hCO0FsTHpiSTtFQUNJO0VBQ0E7RUFDQSxpQmtMNHRIYztFbEwzdEhkO0VBQ0E7RUFhSTtFQUNBO0VBQ0E7VUFBQTtFQUNBLHlCa0wyc0hVO0FBNXhHdEI7QUFzMEdZO0VBQ0k7RUFDQTtFQUNBO1VBQUE7QUFwMEdoQjtBbEx6Y0k7RUFDSTtFQUNBO0VBQ0EsaUJrTDR0SGM7RWxMM3RIZDtFQUNBO0VBa0JJO0VBQ0E7RUFDQTtVQUFBO0VBQ0EsdUJrTHNzSFU7QUE1d0d0QixDOzs7O0F2TXhkQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0VBO0VBQ0k7QXNMOE5KOztBdEwzTkE7RUFDSTtBc0w4Tko7O0FwTHBPSTtFQURKO0lBRVE7RW9Md09OO0FBQ0Y7O0FwTHJPQTtFQUNJO0VBQ0E7RUFDQTtBb0x3T0o7QXBMdE9JO0VBTEo7SUFNUTtJQUNBO0lBQ0E7RW9MeU9OO0FBQ0Y7O0FwTHRPQTtFQUdZO0lBQ0k7SUFDQTtFb0x1T2Q7RXBMek9VO0lBQ0k7SUFDQTtFb0wyT2Q7RXBMN09VO0lBQ0k7SUFDQTtFb0wrT2Q7RXBMalBVO0lBQ0k7SUFDQTtFb0xtUGQ7RXBMclBVO0lBQ0k7SUFDQTtFb0x1UGQ7RXBMelBVO0lBQ0k7SUFDQTtFb0wyUGQ7RXBMN1BVO0lBQ0k7SUFDQTtFb0wrUGQ7RXBMalFVO0lBQ0k7SUFDQTtFb0xtUWQ7RXBMclFVO0lBQ0k7SUFDQTtFb0x1UWQ7RXBMelFVO0lBQ0k7SUFDQTtFb0wyUWQ7RXBMN1FVO0lBQ0k7SUFDQTtFb0wrUWQ7RXBMalJVO0lBQ0k7SUFDQTtFb0xtUmQ7RXBMOVFFO0lBQ0k7RW9MZ1JOO0FBQ0Y7QXBMM1FRO0VBREo7SUFFUTtFb0w4UVY7QUFDRjs7QW5MblRBOztFQUFBO0FDQUE7O0VBQUE7QWtMNkNBOztFQUFBO0FBb0NBOztFQUFBO0FBaUVRO0VBQ0k7RUFDQTtBQWdMWjs7QUE3SkE7O0VBQUE7QUFzS0E7O0VBQUE7QUE0Q0E7O0VBQUE7QUF5U0E7O0VBQUE7QUFtREE7O0VBQUE7QUF5Q0E7O0VBQUE7QUFtTEE7O0VBQUE7QUE0QkE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE0SkE7O0VBQUE7QUFzQ0E7O0VBQUE7QUE2b0NRO0VBQ0ksd0N4TTcxRWdCO0V3TTgxRWhCLGNqTG41RVM7RWlMbzVFVDtBQXRpRVo7QUF3aUVZO0VBQ0k7QUF0aUVoQjtBQXlpRVk7RUFDSTtBQXZpRWhCO0FBMmlFZ0I7RUFDSTtBQXppRXBCO0FBOGlFUTtFQUNJO0FBNWlFWjs7QUFneUZBO0FBaUNBOztFQUFBO0FBMGhCQTs7RUFBQTtBQVlJO0VBQ0k7RUFDQTtFQUFBO0VBQUE7QUE3MUdSO0ExTC9VSTtFMEwwcUhBO0lBS1E7RUE1MUdWO0FBQ0Y7QUE4MUdRO0VBQ0k7RUFDQTtBQTUxR1o7QTFML1dJO0UwTHlzSEk7SUFLUTtJQUNBO0VBMzFHZDtBQUNGO0FBNjFHWTtFQUNJO0FBMzFHaEI7QTFMeFhJO0UwTGt0SFE7SUFJUTtFQTExR2xCO0FBQ0Y7QTFMN1hJO0UwTDB0SFE7SUFFUTtZQUFBO0lBQ0E7RUEzMUdsQjtFQTYxR2tCO0lBQ0k7WUFBQTtFQTMxR3RCO0FBQ0Y7QTFMdFlJO0UwTCt0SGdCO0lBSVE7WUFBQTtFQXoxRzFCO0FBQ0Y7QTFML1hJO0UwTDZ0SFE7SUFFUTtFQTUxR2xCO0FBQ0Y7QUFnMkdRO0VBRUk7RUFDQSxjakxud0hXO0VpTG93SFg7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFN0x6d0hSLDJDQUZpQjtFQUVqQixtQ0FGaUI7QTZMNGFyQjtBMUwxWkk7RTBMZ3ZISTtJQWFRO0VBLzFHZDtBQUNGO0FBaTJHWTtFQUNJO0FBLzFHaEI7QUFtMkdRO0VBQ0kseUJqTHR5SFM7RWlMdXlIVCxrQmhKdnlIWTtFZ0p3eUhaLFdqTG55SFU7RWlMb3lIVjtFQUNBO0VBQ0E7RUFDQTtNQUFBO1VBQUE7RUFDQTtFQUNBO0FBajJHWjtBQW8yR1E7RUFDSTtFQUFBO0VBQUE7RUFDQTtNQUFBO1VBQUE7RUFDQTtNQUFBO1VBQUE7RUFDQTtFQUNBLGNqTDN5SFc7RWlMNHlIWDtFQUNBO0FBbDJHWjtBMUx0Ykk7RTBMaXhISTtJQVVRO0lBQ0E7SUFDQTtJQUNBO0VBajJHZDtBQUNGO0FBbzJHUTtFQUNJO0VBQUE7RUFBQTtFQUNBO01BQUE7VUFBQTtFQUNBO0VBQ0E7TUFBQTtVQUFBO0VBQ0E7QUFsMkdaO0ExTHJjSTtFMExreUhJO0lBUVE7UUFBQTtZQUFBO0VBajJHZDtBQUNGO0FBbzJHUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFsMkdaO0ExTGpkSTtFMEw4eUhJO0lBUVE7SUFDQTtFQWoyR2Q7QUFDRjtBQW8yR1E7RUFDSTtFQUNBO0VBQ0E7QUFsMkdaO0FBcTJHUTtFQUNJO0VBQUE7RUFBQTtFQUNBO0VBQUE7TUFBQTtVQUFBO0U3TG4xSFIsNkNBRmlCO0VBRWpCLHFDQUZpQjtFNkx1MUhUO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxnQmpMcjJIVTtFaUxzMkhWLGtCaEozMkhZO0VnSjQySFo7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7VUFBQTtFQUNBO0FBbjJHWjtBQXEyR1k7RUFDSTtFQUNBO1VBQUE7QUFuMkdoQjtBMUxwZkk7RTBMaTBISTtJN0xqMUhKLGtGQUZpQjtJQUVqQiwwRUFGaUI7SUFFakIsa0VBRmlCO0lBRWpCLHVHQUZpQjtJNkw4MkhMO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtZQUFBO0lBQ0E7WUFBQTtJQUNBO1lBQUE7SUFDQTtFQW4yR2Q7RUFxMkdjO0lBQ0k7SUFDQSxnQmpMbjRIRTtJaUxvNEhGO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtZQUFBO0VBbjJHbEI7RUFzMkdjO0lBQ0k7RUFwMkdsQjtBQUNGO0ExTC9nQkk7RTBMaTNIWTtJQUlRO0VBbDJHdEI7QUFDRjtBQXUyR1E7RUFDSTtFQUNBO01BQUE7VUFBQTtFQUNBO0VBQ0E7QUFyMkdaO0ExTDFoQkk7RTBMMjNISTtJQU9RO0lBQ0E7UUFBQTtZQUFBO0VBcDJHZDtBQUNGO0FBdTJHUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQXIyR1o7QTFMeGlCSTtFMEx1NEhJO0lBU1E7RUFwMkdkO0FBQ0Y7QUF1MkdRO0VBQ0k7RUFDQTtFQUNBO0FBcjJHWjtBMUxsakJJO0UwTG81SEk7SUFNUTtFQXAyR2Q7QUFDRjtBQXUyR1E7RUFDSTtBQXIyR1o7QTFMMWpCSTtFMEw4NUhJO0lBSVE7RUFwMkdkO0FBQ0Y7QUF1MkdRO0VBQ0ksY2pMNzdIVztFWk1uQiwyQ0FGaUI7RUFFakIsbUNBRmlCO0E2THFsQnJCO0FBdTJHWTtFQUNJLGNqTGg4SE87QWlMMmxCdkIsQyIsInNvdXJjZXMiOlsid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3ZlbmRvci9zcHJ5a2VyLXNob3Avc2hvcC11aS9zcmMvU3ByeWtlclNob3AvWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvX2NvbG9yLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9zaG9wLXVpL3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9fZm9udC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3ZlbmRvci9zcHJ5a2VyLXNob3Avc2hvcC11aS9zcmMvU3ByeWtlclNob3AvWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvX2VmZmVjdC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3ZlbmRvci9zcHJ5a2VyLXNob3Avc2hvcC11aS9zcmMvU3ByeWtlclNob3AvWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvX3otaW5kZXguc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi92ZW5kb3Ivc3ByeWtlci1zaG9wL3Nob3AtdWkvc3JjL1NwcnlrZXJTaG9wL1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL19zcGFjaW5nLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9zaG9wLXVpL3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9fYnJlYWtwb2ludC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3ZlbmRvci9zcHJ5a2VyLXNob3Avc2hvcC11aS9zcmMvU3ByeWtlclNob3AvWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvX2dyaWQuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi92ZW5kb3Ivc3ByeWtlci1zaG9wL3Nob3AtdWkvc3JjL1NwcnlrZXJTaG9wL1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL19pbXBvcnQuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi92ZW5kb3Ivc3ByeWtlci1zaG9wL3Nob3AtdWkvc3JjL1NwcnlrZXJTaG9wL1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvX3Jlc2V0LnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9zaG9wLXVpL3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL19jb2xvci5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3ZlbmRvci9zcHJ5a2VyLXNob3Avc2hvcC11aS9zcmMvU3ByeWtlclNob3AvWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9fZm9udC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3ZlbmRvci9zcHJ5a2VyLXNob3Avc2hvcC11aS9zcmMvU3ByeWtlclNob3AvWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9fZWZmZWN0LnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9zaG9wLXVpL3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL192aXNpYmlsaXR5LnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9zaG9wLXVpL3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL19zcGFjaW5nLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9zaG9wLXVpL3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL19icmVha3BvaW50LnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9zaG9wLXVpL3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL19ncmlkLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9zaG9wLXVpL3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL191aS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3ZlbmRvci9zcHJ5a2VyLXNob3Avc2hvcC11aS9zcmMvU3ByeWtlclNob3AvWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9faW1wb3J0LnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL19nbG9iYWwuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2Jhc2ljLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL19wcmludC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9fYXJyb3cuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL19pbXBvcnQuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL19jb2xvci5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3ZlbmRvci9zcHJ5a2VyLXNob3Avc2hvcC11aS9zcmMvU3ByeWtlclNob3AvWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvYmFzaWNzL19yZXNldC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3ZlbmRvci9zcHJ5a2VyLXNob3Avc2hvcC11aS9zcmMvU3ByeWtlclNob3AvWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvYmFzaWNzL190eXBvZ3JhcGh5LnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9zaG9wLXVpL3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9iYXNpY3MvX2dyaWQuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi92ZW5kb3Ivc3ByeWtlci1zaG9wL3Nob3AtdWkvc3JjL1NwcnlrZXJTaG9wL1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2Jhc2ljcy9fYW5pbWF0aW9uLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9mb250YXdlc29tZS9zY3NzL2ZvbnRhd2Vzb21lLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9mb250YXdlc29tZS9zY3NzL19jb3JlLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9mb250YXdlc29tZS9zY3NzL19sYXJnZXIuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2ZvbnRhd2Vzb21lL3Njc3MvX2ZpeGVkLXdpZHRoLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9mb250YXdlc29tZS9zY3NzL192YXJpYWJsZXMuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2ZvbnRhd2Vzb21lL3Njc3MvX2xpc3Quc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2ZvbnRhd2Vzb21lL3Njc3MvX2JvcmRlcmVkLXB1bGxlZC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvZm9udGF3ZXNvbWUvc2Nzcy9fYW5pbWF0ZWQuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2ZvbnRhd2Vzb21lL3Njc3MvX3JvdGF0ZWQtZmxpcHBlZC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvZm9udGF3ZXNvbWUvc2Nzcy9fbWl4aW5zLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9mb250YXdlc29tZS9zY3NzL19zdGFja2VkLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9mb250YXdlc29tZS9zY3NzL19pY29ucy5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvZm9udGF3ZXNvbWUvc2Nzcy9fc2NyZWVuLXJlYWRlci5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvZm9udGF3ZXNvbWUvc2Nzcy9yZWd1bGFyLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9mb250YXdlc29tZS9zY3NzL3NvbGlkLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9mb250YXdlc29tZS9zY3NzL2xpZ2h0LnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9GcnV0aWdlck5leHRQcm8vc2Nzcy9mcnV0aWdlcm5leHRwcm8uc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL0lzdG9rL3Njc3MvaXN0b2suc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2Jhc2ljcy9fZ3JpZC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvYmFzaWNzL19yZXNldC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9fcmVzZXQuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2Jhc2ljcy9fdHlwb2dyYXBoeS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvX2ZvbnQuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL19ncmlkLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL0NhdGFsb2dQYWdlL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvc29ydC9zb3J0LnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL0NhdGFsb2dQYWdlL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvc3VnZ2VzdGlvbi1wcm9kdWN0L3N1Z2dlc3Rpb24tcHJvZHVjdC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3ZlbmRvci9zcHJ5a2VyLXNob3AvcHJvZHVjdC1kZXRhaWwtcGFnZS9zcmMvU3ByeWtlclNob3AvWXZlcy9Qcm9kdWN0RGV0YWlsUGFnZS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL3Byb2R1Y3QtY2Fyb3VzZWwvc3R5bGUuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9hdG9tcy9iYWRnZS9iYWRnZS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvX3JhZGl1cy5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL2F0b21zL2JveC9ib3guc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9hdG9tcy9idXR0b24vYnV0dG9uLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvYXRvbXMvY2hlY2tib3gvY2hlY2tib3guc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL196LWluZGV4LnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvYXRvbXMvaWNvbi9pY29uLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvYXRvbXMvaW5wdXQvaW5wdXQuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9hdG9tcy9sYWJlbC9sYWJlbC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL2F0b21zL2xpbmsvbGluay5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL2F0b21zL2xpc3QvbGlzdC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL2F0b21zL3JhZGlvL3JhZGlvLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvYXRvbXMvc2VsZWN0L3NlbGVjdC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL2F0b21zL3RhYmxlL3RhYmxlLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9zaG9wLXVpL3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvYXRvbXMvdGV4dGFyZWEvc3R5bGUuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9hdG9tcy90aHVtYm5haWwvdGh1bWJuYWlsLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvYXRvbXMvdGl0bGUvdGl0bGUuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9vcmdhbmlzbXMvaGVhZGVyL2hlYWRlci5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL29yZ2FuaXNtcy9uYXZpZ2F0aW9uLXRvcC9uYXZpZ2F0aW9uLXRvcC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3ZlbmRvci9zcHJ5a2VyLXNob3Avc2hvcC11aS9zcmMvU3ByeWtlclNob3AvWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL29yZ2FuaXNtcy9ub3RpZmljYXRpb24tYXJlYS9zdHlsZS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL29yZ2FuaXNtcy9zZWN0aW9uL3NlY3Rpb24uc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9vcmdhbmlzbXMvc2lkZS1kcmF3ZXIvc2lkZS1kcmF3ZXIuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvYWN0aW9uLWJhci9hY3Rpb24tYmFyLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9zaG9wLXVpL3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL2FqYXgtYWRkLXRvLWNhcnQvc3R5bGUuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvYWpheC1sb2FkZXIvYWpheC1sb2FkZXIuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi92ZW5kb3Ivc3ByeWtlci1zaG9wL3Nob3AtdWkvc3JjL1NwcnlrZXJTaG9wL1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvYWxlcnQvc3R5bGUuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvYXV0b2NvbXBsZXRlLWZvcm0vYXV0b2NvbXBsZXRlLWZvcm0uc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvYnJlYWRjcnVtYi1zdGVwL2JyZWFkY3J1bWItc3RlcC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3ZlbmRvci9zcHJ5a2VyLXNob3Avc2hvcC11aS9zcmMvU3ByeWtlclNob3AvWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9jYXJkL3N0eWxlLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9zaG9wLXVpL3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL2NhcnQtY291bnRlci9zdHlsZS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9jYXJ0LWl0ZW1zLWNvdW50ZXIvY2FydC1pdGVtcy1jb3VudGVyLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9zaG9wLXVpL3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL2NvbGxhcHNpYmxlLWxpc3Qvc3R5bGVzLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9zaG9wLXVpL3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL2VuZGxlc3Mtc2Nyb2xsL3N0eWxlLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL2ZsYXNoLW1lc3NhZ2UvZmxhc2gtbWVzc2FnZS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9mb3JtL2Zvcm0uc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi92ZW5kb3Ivc3ByeWtlci1zaG9wL3Nob3AtdWkvc3JjL1NwcnlrZXJTaG9wL1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvZm9ybWF0dGVkLW51bWJlci1pbnB1dC9zdHlsZS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3ZlbmRvci9zcHJ5a2VyLXNob3Avc2hvcC11aS9zcmMvU3ByeWtlclNob3AvWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9pbWFnZS1jYXJvdXNlbC9zdHlsZS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9qdW1ib3Ryb24vanVtYm90cm9uLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9zaG9wLXVpL3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL2xhenktaW1hZ2Uvc3R5bGUuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi92ZW5kb3Ivc3ByeWtlci1zaG9wL3Nob3AtdWkvc3JjL1NwcnlrZXJTaG9wL1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvbWFpbi1vdmVybGF5L3N0eWxlLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9zaG9wLXVpL3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL21haW4tcG9wdXAvc3R5bGUuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvbWVudS9tZW51LnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL21vbmV5LXByaWNlL21vbmV5LXByaWNlLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL25hdmlnYXRpb24taWNvbi1saXN0L25hdmlnYXRpb24taWNvbi1saXN0LnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL25hdmlnYXRpb24tbXVsdGlsZXZlbC9uYXZpZ2F0aW9uLW11bHRpbGV2ZWwtc3R5bGVzLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9zaG9wLXVpL3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL25hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3Qvc3R5bGUuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9zaG9wLXVpL3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL3Bhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yL3N0eWxlLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9zaG9wLXVpL3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL3Bhc3N3b3JkLWZpZWxkL3N0eWxlLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL3ByaWNlL3ByaWNlLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL3Byb2R1Y3QtY2FyZC9wcm9kdWN0LWNhcmQuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvcHJvZHVjdC1pdGVtL3Byb2R1Y3QtaXRlbS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3ZlbmRvci9zcHJ5a2VyLXNob3Avc2hvcC11aS9zcmMvU3ByeWtlclNob3AvWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9wcm9kdWN0LWl0ZW0tbGlzdC9zdHlsZS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9wcm9kdWN0LWxpc3QtaXRlbS9wcm9kdWN0LWxpc3QtaXRlbS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9xdW90ZS1zdGF0dXMvcXVvdGUtc3RhdHVzLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL3NlYXJjaC1mb3JtL3NlYXJjaC1mb3JtLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9zaG9wLXVpL3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL3NpbXBsZS1jYXJvdXNlbC9zdHlsZS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3ZlbmRvci9zcHJ5a2VyLXNob3Avc2hvcC11aS9zcmMvU3ByeWtlclNob3AvWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9zaW5nbGUtYnV0dG9uLWZvcm0vc3R5bGUuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi92ZW5kb3Ivc3ByeWtlci1zaG9wL3Nob3AtdWkvc3JjL1NwcnlrZXJTaG9wL1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvc3RhdHVzL3N0eWxlLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL3N1Z2dlc3Qtc2VhcmNoL3N1Z2dlc3Qtc2VhcmNoLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL3RvZ2dsZXItY2hlY2tib3gvdG9nZ2xlci1jaGVja2JveC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy90b2dnbGVyLXJhZGlvL3RvZ2dsZXItcmFkaW8uc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi92ZW5kb3Ivc3ByeWtlci1zaG9wL3Nob3AtdWkvc3JjL1NwcnlrZXJTaG9wL1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvdG9vbHRpcC1tZXNzYWdlL3N0eWxlLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3RlbXBsYXRlcy9wYWdlLWxheW91dC1tYWluL3BhZ2UtbGF5b3V0LW1haW4uc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvQ2F0YWxvZ1BhZ2UvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9hY3RpdmUtZmlsdGVyL2FjdGl2ZS1maWx0ZXIuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvQ2F0YWxvZ1BhZ2UvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9jYXRhbG9nLWNtcy1ibG9jay9jYXRhbG9nLWNtcy1ibG9jay5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9DYXRhbG9nUGFnZS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL2ZpbHRlci1jYXRlZ29yeS9maWx0ZXItY2F0ZWdvcnkuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvQ2F0YWxvZ1BhZ2UvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9maWx0ZXItZW51bWVyYXRpb24vZmlsdGVyLWVudW1lcmF0aW9uLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL0NhdGFsb2dQYWdlL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvZmlsdGVyLXJhbmdlL2ZpbHRlci1yYW5nZS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9DYXRhbG9nUGFnZS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL2ZpbHRlci1yYXRpbmcvZmlsdGVyLXJhdGluZy5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9DYXRhbG9nUGFnZS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL3N1Z2dlc3Rpb24tbGlua3MtbGlzdC9zdWdnZXN0aW9uLWxpbmtzLWxpc3Quc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvQ2F0YWxvZ1BhZ2UvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy92aWV3LW1vZGUtc3dpdGNoL3ZpZXctbW9kZS1zd2l0Y2guc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvQ2F0YWxvZ1BhZ2UvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL29yZ2FuaXNtcy9hY3RpdmUtZmlsdGVyLXNlY3Rpb24vYWN0aXZlLWZpbHRlci1zZWN0aW9uLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL0NhdGFsb2dQYWdlL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9vcmdhbmlzbXMvZmlsdGVyLXNlY3Rpb24vZmlsdGVyLXNlY3Rpb24uc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvSG9tZVBhZ2UvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL29yZ2FuaXNtcy9jb21tb24tc2VjdGlvbi9jb21tb24tc2VjdGlvbi5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9Qcm9kdWN0RGV0YWlsUGFnZS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL3BkcC10aXRsZS9wZHAtdGl0bGUuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvUHJvZHVjdERldGFpbFBhZ2UvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9wcm9kdWN0LWFkZGl0aW9uYWwvcHJvZHVjdC1hZGRpdGlvbmFsLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Byb2R1Y3REZXRhaWxQYWdlL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvcHJvZHVjdC1idW5kbGUvcHJvZHVjdC1idW5kbGUuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvUHJvZHVjdERldGFpbFBhZ2UvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9wcm9kdWN0LWJ1bmRsZS1kZXRhaWwvcHJvZHVjdC1idW5kbGUtZGV0YWlsLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Byb2R1Y3REZXRhaWxQYWdlL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvcHJvZHVjdC1jbXMvcHJvZHVjdC1jbXMuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvUHJvZHVjdERldGFpbFBhZ2UvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9wcm9kdWN0LWNvbmZpZ3VyYXRvci9wcm9kdWN0LWNvbmZpZ3VyYXRvci5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9Qcm9kdWN0RGV0YWlsUGFnZS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL3Byb2R1Y3QtY29udGVudC9wcm9kdWN0LWNvbnRlbnQuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvUHJvZHVjdERldGFpbFBhZ2UvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9wcm9kdWN0LWRldGFpbC9wcm9kdWN0LWRldGFpbC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9Qcm9kdWN0RGV0YWlsUGFnZS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL3Byb2R1Y3QtZG9jdW1lbnRzL3Byb2R1Y3QtZG9jdW1lbnRzLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Byb2R1Y3REZXRhaWxQYWdlL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvcHJvZHVjdC1wcmludC9wcm9kdWN0LXByaW50LnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Byb2R1Y3REZXRhaWxQYWdlL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvcHJvZHVjdC1wcmludC1oZWFkZXIvcHJvZHVjdC1wcmludC1oZWFkZXIuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvUHJvZHVjdERldGFpbFBhZ2UvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9wcm9kdWN0LXNwZWNzL3Byb2R1Y3Qtc3BlY3Muc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvUHJvZHVjdERldGFpbFBhZ2UvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9wcm9kdWN0LXRhYnMvcHJvZHVjdC10YWJzLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Byb2R1Y3REZXRhaWxQYWdlL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvdmFyaWFudC92YXJpYW50LnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvYXRvbXMvY21zLXBhZ2UtdGl0bGUvY21zLXBhZ2UtdGl0bGUuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9hdG9tcy9vdmVybGF5LWJsb2NrL292ZXJsYXktYmxvY2suc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9hdG9tcy9xdWFudGl0eS1vcHRpb24vcXVhbnRpdHktb3B0aW9uLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvYXRvbXMvc3dpdGNoL3N3aXRjaC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL29yZ2FuaXNtcy9hY2NvdW50LW5hdmlnYXRpb24vYWNjb3VudC1uYXZpZ2F0aW9uLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvb3JnYW5pc21zL2Zvb3Rlci9mb290ZXIuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9vcmdhbmlzbXMvb3JkZXItc2lkZWJhci9vcmRlci1zaWRlYmFyLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL2FjdGlvbi1jYXJkL2FjdGlvbi1jYXJkLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL2FjdGlvbi1jYXJkLWdyaWQvYWN0aW9uLWNhcmQtZ3JpZC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9hZGQtdG8tY2FydC9hZGQtdG8tY2FydC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9hZGQtdG8tY2FydC1leHRlbmRlZC9hZGQtdG8tY2FydC1leHRlbmRlZC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9hdmFpbGFiaWxpdHkvYXZhaWxhYmlsaXR5LnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL2Jhbm5lci9iYW5uZXIuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvYnJhbmQtaXRlbS9icmFuZC1pdGVtLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9jb250ZW50LWNvbGxhcHNlci9jb250ZW50LWNvbGxhcHNlci5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9jb3B5cmlnaHQtYnVpbGQtd2l0aC9jb3B5cmlnaHQtYnVpbGQtd2l0aC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9jdXN0b20tc2VsZWN0L2N1c3RvbS1zZWxlY3Quc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvZGlzcGxheS1hZGRyZXNzL2Rpc3BsYXktYWRkcmVzcy5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9mb290ZXItdGV4dC9mb290ZXItdGV4dC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9pY29uLXRvb2x0aXAvaWNvbi10b29sdGlwLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL2lucHV0LXRleHQtY29weS9pbnB1dC10ZXh0LWNvcHkuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvbG9nby9sb2dvLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL21vZGFsLXdpbmRvdy9tb2RhbC13aW5kb3cuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvbmF2aWdhdGlvbi1mb290ZXItaXRlbS9uYXZpZ2F0aW9uLWZvb3Rlci1pdGVtLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL25hdmlnYXRpb24tbGlzdC9uYXZpZ2F0aW9uLWxpc3Quc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvbmF2aWdhdGlvbi1zaWRlYmFyL25hdmlnYXRpb24tc2lkZWJhci5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9uYXZpZ2F0aW9uLXNpZGViYXItaXRlbS9uYXZpZ2F0aW9uLXNpZGViYXItaXRlbS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9ub3NjcmlwdC13YXJuaW5nL25vc2NyaXB0LXdhcm5pbmcuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvcGFnZS1pbmZvL3BhZ2UtaW5mby5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9wYW5lbC1pbmZvLWl0ZW0vcGFuZWwtaW5mby1pdGVtLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL3ByaWNlLW1vZGUvcHJpY2UtbW9kZS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9wcmljZS10b3RhbC1jYWxjdWxhdG9yL3ByaWNlLXRvdGFsLWNhbGN1bGF0b3Iuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvcHJpY2Utd2l0aC1yZWFsdGltZS1wcmljZS9wcmljZS13aXRoLXJlYWx0aW1lLXByaWNlLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL3ByaXZhY3ktbmF2aWdhdGlvbi9wcml2YWN5LW5hdmlnYXRpb24uc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvcHJvZHVjdC1jYXJkLWV4dGVuZGVkL3Byb2R1Y3QtY2FyZC1leHRlbmRlZC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9wcm9kdWN0LWNhcmQtaXRlbS9wcm9kdWN0LWNhcmQtaXRlbS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9wcm9kdWN0LWl0ZW0tYXR0cmlidXRlcy9wcm9kdWN0LWl0ZW0tYXR0cmlidXRlcy5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9wcm9kdWN0LWl0ZW0taW1hZ2UvcHJvZHVjdC1pdGVtLWltYWdlLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL3Byb2R1Y3QtaXRlbS1vcHRpb25zL3Byb2R1Y3QtaXRlbS1vcHRpb25zLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL3Byb2R1Y3QtaXRlbS12YXJpYW50LXNlbGVjdG9yL3Byb2R1Y3QtaXRlbS12YXJpYW50LXNlbGVjdG9yLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL3Byb2R1Y3QtbGlzdC1pdGVtLWF0dHJpYnV0ZXMvcHJvZHVjdC1saXN0LWl0ZW0tYXR0cmlidXRlcy5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9wcm9qZWN0LW9yZGVyLWNvbmZpZ3VyYXRpb24vcHJvamVjdC1vcmRlci1jb25maWd1cmF0aW9uLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL3Byb2plY3QtcmVxdWVzdC1sYWJlbC9wcm9qZWN0LXJlcXVlc3QtbGFiZWwuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvcXVhbnRpdHktY291bnRlci9xdWFudGl0eS1jb3VudGVyLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vbm9kZV9tb2R1bGVzL25vdWlzbGlkZXIvZGlzdC9ub3Vpc2xpZGVyLm1pbi5jc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL3JhbmdlLXNsaWRlci9yYW5nZS1zbGlkZXIuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9ub2RlX21vZHVsZXMvc2xpY2stY2Fyb3VzZWwvc2xpY2svc2xpY2suc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvc2xpY2stY2Fyb3VzZWwvc2xpY2stY2Fyb3VzZWwuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvc21hcnQtcHJvamVjdC1wcmljZS1yZXF1ZXN0L3NtYXJ0LXByb2plY3QtcHJpY2UtcmVxdWVzdC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy90YWJsZS1hY3Rpb24tbGluay90YWJsZS1hY3Rpb24tbGluay5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy90YWJsZS1hY3Rpb24tbGlzdC90YWJsZS1hY3Rpb24tbGlzdC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy90aWxlL3RpbGUuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvdG9nZ2xlci1hY2NvcmRpb24vdG9nZ2xlci1hY2NvcmRpb24uc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvdG9nZ2xlci1hY2NvcmRpb24tY29tcG9uZW50L3RvZ2dsZXItYWNjb3JkaW9uLWNvbXBvbmVudC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy90b29sdGlwLWluZm8vdG9vbHRpcC1pbmZvLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL3VzZXItbmF2aWdhdGlvbi91c2VyLW5hdmlnYXRpb24uc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIERlZmluZXMgdGhlIG1haW4gY29sb3Igb2YgdGhlIHNob3AgdGhlbWUuIFVzYWdlOiBwcmltYXJ5IGVsZW1lbnRzJyBiYWNrZ3JvdW5kIGFuZCBjb2xvci5cbiAqL1xuJHNldHRpbmctY29sb3ItbWFpbjogIzIxOTllOCAhZGVmYXVsdDtcblxuLyoqXG4gKiBEZWZpbmVzIGFsdGVybmF0aXZlIGNvbG9yIG9mIHRoZSBzaG9wIHRoZW1lLiBVc2FnZTogc2Vjb25kYXJ5IGVsZW1lbnRzJyBiYWNrZ3JvdW5kIGFuZCBjb2xvci5cbiAqL1xuJHNldHRpbmctY29sb3ItYWx0OiAjZTI2OTRhICFkZWZhdWx0O1xuXG4vKipcbiAqIERlZmluZXMgd2hpdGUgY29sb3IuIFVzYWdlOiBub3QgdHJhbnNwYXJlbnQgZWxlbWVudHMnIGJhY2tncm91bmQgb2YgZGVmYXVsdCBiYWNrZ3JvdW5kLlxuICovXG4kc2V0dGluZy1jb2xvci13aGl0ZTogI2ZmZmZmZiAhZGVmYXVsdDtcblxuLyoqXG4gKiBEZWZpbmVzIGEgbGlnaHQgc2hhZGUgY29sb3IuIFVzYWdlOiBlbGVtZW50cycgYmFja2dyb3VuZCwgYm9yZGVycyBhbmQgdGV4dC5cbiAqL1xuJHNldHRpbmctY29sb3ItbGlnaHQ6ICNkYWRhZGEgIWRlZmF1bHQ7XG5cbi8qKlxuICogRGVmaW5lcyBhIGxpZ2h0ZXIgc2hhZGUgY29sb3IuIFVzYWdlOiBlbGVtZW50cycgYmFja2dyb3VuZCwgYm9yZGVycyBhbmQgdGV4dC5cbiAqL1xuJHNldHRpbmctY29sb3ItbGlnaHRlcjogI2YwZjBmMCAhZGVmYXVsdDtcblxuLyoqXG4gKiBEZWZpbmVzIHRoZSBsaWdodGVzdCBzaGFkZSBjb2xvci4gVXNhZ2U6IGVsZW1lbnRzJyBiYWNrZ3JvdW5kLCBib3JkZXJzIGFuZCB0ZXh0LlxuICovXG4kc2V0dGluZy1jb2xvci1saWdodGVzdDogI2Y0ZjRmNCAhZGVmYXVsdDtcblxuLyoqXG4gKiBEZWZpbmVzIHRoZSBzaGFkZSBvZiB0aGUgYmxhY2sgY29sb3IuIFVzYWdlOiBhcyBhIGJhc2Ugb2YgYmxhY2sgY29sb3IgZm9yIHNlbWktdHJhbnNwYXJlbnQgZWxlbWVudHMuXG4gKi9cbiRzZXR0aW5nLWNvbG9yLWJsYWNrOiAjMDAwMDAwICFkZWZhdWx0O1xuXG4vKipcbiAqIERlZmluZXMgYSBkYXJrIHNoYWRlIGNvbG9yLiBVc2FnZTogZWxlbWVudHMnIHRleHQgY29sb3IgdmFyaWFudC5cbiAqL1xuJHNldHRpbmctY29sb3ItZGFyazogI2JiYmJiYiAhZGVmYXVsdDtcblxuLyoqXG4gKiBEZWZpbmVzIGEgZGFya2VyIHNoYWRlIGNvbG9yLiBVc2FnZTogZWxlbWVudHMnIHRleHQgY29sb3IgdmFyaWFudC5cbiAqL1xuJHNldHRpbmctY29sb3ItZGFya2VyOiAjNzc3Nzc3ICFkZWZhdWx0O1xuXG4vKipcbiAqIERlZmluZXMgdGhlIGRhcmtlc3Qgc2hhZGUgY29sb3IuIFVzYWdlOiBlbGVtZW50cycgdGV4dCBjb2xvciB2YXJpYW50LlxuICovXG4kc2V0dGluZy1jb2xvci1kYXJrZXN0OiAjMzMzMzMzICFkZWZhdWx0O1xuXG4vKipcbiAqIERlZmluZXMgYSB0cmFuc3BhcmVudCBjb2xvci4gVXNhZ2U6IGVsZW1lbnRzJyBiYWNrZ3JvdW5kLCBib3JkZXIuXG4gKi9cbiRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50OiByZ2JhKCRzZXR0aW5nLWNvbG9yLXdoaXRlLCAwKSAhZGVmYXVsdDtcblxuLyoqXG4gKiBEZWZpbmVzIHRoZSBtYWluIGJhY2tncm91bmQgY29sb3IuIFVzYWdlOiBib2R5IGFuZCBzaWRlLWRyYXdlciBiYWNrZ3JvdW5kLlxuICovXG4kc2V0dGluZy1jb2xvci1iZzogJHNldHRpbmctY29sb3Itd2hpdGUgIWRlZmF1bHQ7XG5cbi8qKlxuICogRGVmaW5lcyB0aGUgbWFpbiBjb2xvciBvZiB0ZXh0LiBVc2FnZTogZGVmYXVsdCBnbG9iYWwgdGV4dCBjb2xvci5cbiAqL1xuJHNldHRpbmctY29sb3ItdGV4dDogJHNldHRpbmctY29sb3ItZGFya2VzdCAhZGVmYXVsdDtcblxuLyoqXG4gKiBEZWZpbmVzIGEgZGVmYXVsdCBnbG9iYWwgYm9yZGVyIGNvbG9yIGZvciB0aGUgaW5wdXQgZWxlbWVudHMuXG4gKi9cbiRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjogJHNldHRpbmctY29sb3ItbGlnaHQgIWRlZmF1bHQ7XG5cbi8qKlxuICogRGVmaW5lcyBhIGRlZmF1bHQgZ2xvYmFsIGJvcmRlciBjb2xvciBmb3IgdGhlIGlucHV0IGVsZW1lbnRzIG9uIGZvY3VzIGV2ZW50LlxuICovXG4kc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM6ICRzZXR0aW5nLWNvbG9yLWRhcmsgIWRlZmF1bHQ7XG5cbi8qKlxuICogRGVmaW5lcyBhIHNoYWRvdyBzaGFkZSBhbmQgdHJhbnNwYXJlbmN5IGZvciB0aGUgc2hhZG93ZWQgZWxlbWVudHMuXG4gKi9cbiRzZXR0aW5nLWNvbG9yLXNoYWRvdzogcmdiYSgkc2V0dGluZy1jb2xvci1ibGFjaywgMC4xKSAhZGVmYXVsdDtcblxuLyoqXG4gKiBEZWZpbmVzIGEgZGVmYXVsdCBvdmVybGF5IGNvbG9yLiBVc2FnZTogZWxlbWVudHMgd2l0aCBvdmVybGF5IC0gc2lkZS1kcmF3ZXIsIHBvcHVwcyBldGMuXG4gKi9cbiRzZXR0aW5nLWNvbG9yLW92ZXJsYXk6IHJnYmEoJHNldHRpbmctY29sb3ItYmxhY2ssIDAuMykgIWRlZmF1bHQ7XG5cbi8qKlxuICogRGVmaW5lcyBhIGRlZmF1bHQgaW1hZ2Ugb3ZlcmxheSBjb2xvci4gVXNhZ2U6IGltYWdlcyB3aXRoIG92ZXJsYXkgLSBsYXp5LWltYWdlLlxuICovXG4kc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5OiByZ2JhKCRzZXR0aW5nLWNvbG9yLWJsYWNrLCAwLjA1KSAhZGVmYXVsdDtcblxuJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTogI2VhZjFmYTtcblxuJHNldHRpbmctY29sb3ItYmx1ZTogIzAwNjRiNDtcblxuLyoqXG4gKiBEZWZpbmVzIGFjdGlvbiBjb2xvcnMgbWFwLlxuICovXG4kc2V0dGluZy1jb2xvci1hY3Rpb25zOiAoXG4gICAgc3VjY2VzczogIzRmYzJhMCxcbiAgICB3YXJuaW5nOiAjZjI5MTMzLFxuICAgIGFsZXJ0OiAjYjIxNzFhLFxuKSAhZGVmYXVsdDtcbiIsIi8qKlxuICogRGVmaW5lcyBmb250IGZhbWlseSBzZXR0aW5nLiBVc2FnZTogYm9keSBnbG9iYWwgZm9udCBzdHlsZXMuXG4gKi9cbiRzZXR0aW5nLWZvbnQtZmFtaWx5OiAnQXJpYWwnLCBzYW5zLXNlcmlmICFkZWZhdWx0O1xuXG4vKipcbiAqIERlZmluZXMgZm9udCBmYW1pbHkgc2V0dGluZyBmb3IgY29kZS4gQ2FuIGJlIHVzZWQgZm9yIGNvZGUgYW5kIHByZSBlbGVtZW50cy5cbiAqL1xuJHNldHRpbmctZm9udC1mYW1pbHktY29kZTogJ01lbmxvJywgbW9ub3NwYWNlICFkZWZhdWx0O1xuXG4vKipcbiAqIERlZmluZXMgYmFzaWMgZm9udCBzaXplLiBVc2FnZTogZ2xvYmFsIGJhc2ljIGZvbnQgc2l6ZS5cbiAqL1xuJHNldHRpbmctZm9udC1zaXplLWJhc2U6IDE2cHggIWRlZmF1bHQ7XG5cbi8qKlxuICogRm9udCBzaXplIHZhbHVlcyBtYXAuIFVzYWdlOiBtaXhpbnMgcHJvdmlkaW5nIHN0eWxlcyBmb3IgaGVhZGluZ3MsIHRleHQgZWxlbWVudHMgZXRjLlxuICovXG4kc2V0dGluZy1mb250LXNpemU6IChcbiAgICAxOiAzOHB4LFxuICAgIDI6IDM0cHgsXG4gICAgMzogMzBweCxcbiAgICA0OiAyNnB4LFxuICAgIDU6IDIycHgsXG4gICAgNjogMThweCxcbiAgICBiaWc6IDE2cHgsXG4gICAgZGVmYXVsdDogMTRweCxcbiAgICBzbWFsbDogMTJweCxcbikgIWRlZmF1bHQ7XG5cbi8qKlxuICogRm9udCB3ZWlnaHQgdmFsdWVzIG1hcC4gVXNhZ2U6IG1peGluIHRvIHNldCBmb250IHdlaWdodCBwcm9wZXJ0eS5cbiAqL1xuJHNldHRpbmctZm9udC13ZWlnaHQ6IChcbiAgICBsaWdodDogMzAwLFxuICAgIHJlZ3VsYXI6IDQwMCxcbiAgICBib2xkOiA5MDAsXG4pICFkZWZhdWx0O1xuXG4vKipcbiAqIEZvbnQgbGluZSBoZWlnaHQgdmFsdWVzIG1hcC4gVXNhZ2U6IG1peGlucyBwcm92aWRpbmcgc3R5bGVzIGZvciBoZWFkaW5ncywgdGV4dCBlbGVtZW50cyBldGMuXG4gKi9cbiRzZXR0aW5nLWZvbnQtbGluZS1oZWlnaHQ6IChcbiAgICAxOiAxLjEsXG4gICAgMjogMS4yLFxuICAgIDM6IDEuNCxcbiAgICA0OiAxLjQsXG4gICAgNTogMS40LFxuICAgIDY6IDEuNCxcbiAgICBkZWZhdWx0OiAxLjUsXG4gICAgdGlnaHQ6IDEuMSxcbikgIWRlZmF1bHQ7XG4iLCIvKipcbiAqIERlZmluZXMgYSBkZWZhdWx0IGR1cmF0aW9uIHZhbHVlIGZvciB0aGUgYW5pbWF0aW9uIGVmZmVjdHMuIFVzYWdlOiBtaXhpbnMgcHJvdmlkaW5nIGFuaW1hdGlvbiBwcm9wZXJ0aWVzLlxuICovXG4kc2V0dGluZy1lZmZlY3QtZGVmYXVsdC1kdXJhdGlvbjogMjUwbXMgIWRlZmF1bHQ7XG5cbi8qKlxuICogRGVmaW5lcyBhIGRlZmF1bHQgdGltaW5nIGZ1bmN0aW9uIGZvciB0aGUgYW5pbWF0aW9uIGVmZmVjdHMuIFVzYWdlOiBtaXhpbnMgcHJvdmlkaW5nIGFuaW1hdGlvbiBwcm9wZXJ0aWVzLlxuICovXG4kc2V0dGluZy1lZmZlY3QtZGVmYXVsdC1lYXNlOiBlYXNlLWluLW91dCAhZGVmYXVsdDtcbiIsIi8qKlxuICogRGVmaW5lcyBkZWZhdWx0IHotaW5kZXggdmFsdWUuXG4gKi9cbiRzZXR0aW5nLXppLWVsZW1lbnQ6IDEgIWRlZmF1bHQ7XG5cbi8qKlxuICogRGVmaW5lcyB6LWluZGV4IHZhbHVlIGZvciBhamF4IGR5bmFtaWMgbG9hZGVyLlxuICovXG4kc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyOiAzMDAgIWRlZmF1bHQ7XG5cbi8qKlxuICogRGVmaW5lcyB6LWluZGV4IHZhbHVlIGZvciB0aGUgZmxvYXRpbmcgZWxlbWVudHMuXG4gKi9cbiRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc6IDM1MCAhZGVmYXVsdDtcblxuLyoqXG4gKiBEZWZpbmVzIHotaW5kZXggdmFsdWUgZm9yIHRoZSBoZWFkZXIgY29udGV4dC5cbiAqL1xuJHNldHRpbmctemktaGVhZGVyOiA0MDAgIWRlZmF1bHQ7XG5cbi8qKlxuICogRGVmaW5lcyB6LWluZGV4IHZhbHVlIGZvciB0aGUgc2lkZSBkcmF3ZXIgY29udGV4dC5cbiAqL1xuJHNldHRpbmctemktc2lkZS1kcmF3ZXI6IDUwMCAhZGVmYXVsdDtcblxuLyoqXG4gKiBEZWZpbmVzIHotaW5kZXggdmFsdWUgZm9yIHRoZSBwb3B1cC5cbiAqL1xuJHNldHRpbmctemktcG9wdXA6IDU1MCAhZGVmYXVsdDtcblxuLyoqXG4gKiBEZWZpbmVzIHotaW5kZXggdmFsdWUgZm9yIHRoZSBvdmVybGF5LlxuICovXG4kc2V0dGluZy16aS1vdmVybGF5OiA1NTAgIWRlZmF1bHQ7XG5cbi8qKlxuICogRGVmaW5lcyB6LWluZGV4IHZhbHVlIGZvciB0aGUgbm90aWZpY2F0aW9uIGFyZWEgY29udGV4dC5cbiAqL1xuJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE6IDYwMCAhZGVmYXVsdDtcblxuLyoqXG4gKiBEZWZpbmVzIHotaW5kZXggdmFsdWUgZm9yIHRoZSBzZWFyY2ggc3VnZ2VzdGlvbnMgY29udGV4dC5cbiAqL1xuJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zOiA3MDAgIWRlZmF1bHQ7XG5cbi8qKlxuICogRGVmaW5lcyB6LWluZGV4IHZhbHVlIGZvciB0aGUgYWpheCBsb2FkZXIuXG4gKi9cbiRzZXR0aW5nLXppLWFqYXgtbG9hZGVyOiA3NTAgIWRlZmF1bHQ7XG5cbi8qKlxuICogRGVmaW5lcyB6LWluZGV4IHZhbHVlIGZvciB0aGUgdG9wIG5hdmlnYXRpb24gY29udGV4dC5cbiAqL1xuJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A6IDgwMCAhZGVmYXVsdDtcbiIsIi8qKlxuICogRGVmaW5lcyBzcGFjaW5nIHZhbHVlcyBtYXAuIFVzYWdlOiBzcGFjaW5nIGhlbHBlcnMgYW5kIG1peGlucy5cbiAqL1xuJHNldHRpbmctc3BhY2luZzogKFxuICAgIGJpZzogMXJlbSxcbiAgICBkZWZhdWx0OiAwLjVyZW0sXG4gICAgc21hbGw6IDAuMjVyZW0sXG4gICAgcmVzZXQ6IDAsXG4pICFkZWZhdWx0O1xuIiwiLyoqXG4gKiBEZWZpbmVzIGJyZWFrcG9pbnRzJyB2YWx1ZXMgZm9yIHJlc3BvbnNpdmUuXG4gKi9cbiRzZXR0aW5nLWJyZWFrcG9pbnRzOiAoXG4gICAgc206IChcbiAgICAgICAgMCxcbiAgICAgICAgNTQ5cHgsXG4gICAgKSxcbiAgICBtZDogKFxuICAgICAgICA1NTBweCxcbiAgICAgICAgNzY5cHgsXG4gICAgKSxcbiAgICBsZzogKFxuICAgICAgICA3NzBweCxcbiAgICAgICAgOTY5cHgsXG4gICAgKSxcbiAgICB4bDogKFxuICAgICAgICA5NzBweCxcbiAgICApLFxuKSAhZGVmYXVsdDtcbiIsIi8qKlxuICogRGVmaW5lcyBncmlkIHN5c3RlbSBjb2x1bW5zIGNvdW50LlxuICovXG4kc2V0dGluZy1ncmlkLWNvbHVtbnM6IDEyICFkZWZhdWx0O1xuXG4vKipcbiAqIERlZmluZXMgZ3JpZCBjb250YWluZXIgbWF4IHdpZHRoLlxuICovXG4kc2V0dGluZy1ncmlkLW1heC13aWR0aDogMTE2MHB4ICFkZWZhdWx0O1xuXG4vKipcbiAqIERlZmluZXMgZ3V0dGVycycgc2l6ZSBmb3IgZ3JpZCBcIndpdGgtZ3V0dGVyXCIgbW9kaWZpZXIuXG4gKi9cbiRzZXR0aW5nLWdyaWQtZ3V0dGVyOiAwICFkZWZhdWx0O1xuIiwiLyoqXG4gKiBEZWZpbmVzIGltcG9ydCBibGFja2xpc3QuIFVzYWdlOiBpbXBvcnQgaGVscGVyLlxuICovXG4kc2V0dGluZy1pbXBvcnQtYmxhY2tsaXN0OiAoKTtcbiIsIi8qKlxuICogUHJvdmlkZXMgbGlzdCBvZiBwcm9wZXJpZXMgZm9yIHJlc2V0IHVzYWdlLlxuICovXG5AbWl4aW4gaGVscGVyLXJlc2V0IHtcbiAgICAvLyBodHRwczovL3d3dy5wYXVsaXJpc2guY29tLzIwMTIvYm94LXNpemluZy1ib3JkZXItYm94LWZ0dy9cbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgICBmb250OiBpbmhlcml0O1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci13aGl0ZSwgMCk7XG5cbiAgICBAY29udGVudDtcbn1cbiIsIi8qKlxuICogV3JhcHBlciBmdW5jdGlvbiBmb3IgdGhlIGRhcmtlbiBzYXNzIGZ1bmN0aW9uIHdpdGggYSBkZWZhdWx0IGRlZ3JlZSBwYXJhbWV0ZXIuXG4gKiBAcGFyYW0ge0NvbG9yfSAkc2V0dGluZy1jb2xvclxuICogQHBhcmFtIHtOdW1iZXJ9ICRkZWdyZWUgWzEwXVxuICovXG5AZnVuY3Rpb24gaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3IsICRkZWdyZWU6IDEwKSB7XG4gICAgQHJldHVybiBkYXJrZW4oJHNldHRpbmctY29sb3IsICRkZWdyZWUpO1xufVxuXG4vKipcbiAqIFdyYXBwZXIgZnVuY3Rpb24gZm9yIHRoZSBsaWdodGVuIHNhc3MgZnVuY3Rpb24gd2l0aCBhIGRlZmF1bHQgZGVncmVlIHBhcmFtZXRlci5cbiAqIEBwYXJhbSB7Q29sb3J9ICRzZXR0aW5nLWNvbG9yXG4gKiBAcGFyYW0ge051bWJlcn0gJGRlZ3JlZSBbMTBdXG4gKi9cbkBmdW5jdGlvbiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3IsICRkZWdyZWU6IDM1KSB7XG4gICAgQHJldHVybiBsaWdodGVuKCRzZXR0aW5nLWNvbG9yLCAkZGVncmVlKTtcbn1cbiIsIi8qKlxuICogU2V0cyBmb250LXNpemUgcHJvcGVydHkgZnJvbSBmb250IHNpemUgc2V0dGluZ3MgbWFwIC0gJHNldHRpbmctZm9udC1zaXplIGFjY29yZGluZyB0byB0aGUgcGFzc2VkIG1hcCBrZXkuXG4gKiBAcGFyYW0ge1N0cmluZyB8IE51bWJlcn0gJHNpemVcbiAqL1xuQG1peGluIGhlbHBlci1mb250LXNpemUoJHNpemUpIHtcbiAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAkc2l6ZSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBTZXRzIGZvbnQtd2VpZ2h0IHByb3BlcnR5IGZyb20gZm9udCB3ZWlnaHQgc2V0dGluZ3MgbWFwIC0gJHNldHRpbmctZm9udC13ZWlnaHQgYWNjb3JkaW5nIHRvIHRoZSBwYXNzZWQgbWFwIGtleS5cbiAqIEBwYXJhbSB7U3RyaW5nfSAkd2VpZ2h0XG4gKi9cbkBtaXhpbiBoZWxwZXItZm9udC13ZWlnaHQoJHdlaWdodCkge1xuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtd2VpZ2h0LCAkd2VpZ2h0KTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIFNldHMgbGluZS1oZWlnaHQgcHJvcGVydHkgZnJvbSBsaW5lLWhlaWdodCBzZXR0aW5ncyBtYXAgLSAkc2V0dGluZy1mb250LWxpbmUtaGVpZ2h0IGFjY29yZGluZyB0byB0aGUgcGFzc2VkIG1hcCBrZXkuXG4gKiBAcGFyYW0ge1N0cmluZyB8IE51bWJlcn0gJGhlaWdodFxuICovXG5AbWl4aW4gaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGhlaWdodCkge1xuICAgIGxpbmUtaGVpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtbGluZS1oZWlnaHQsICRoZWlnaHQpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG4iLCIvKipcbiAqIFBvdmlkZXMgdHJhbnNpdGlvbiBwcm9wZXJ0eSBjb25maWd1cmVkIGJ5IHRoZSBwYXNzZWQgcGFyYW1ldGVycy5cbiAqIEBwYXJhbSB7U3RyaW5nfSAkcHJvcHNcbiAqIEBwYXJhbSB7TnVtYmVyfSAkZHVyYXRpb24gWyRzZXR0aW5nLWVmZmVjdC1kZWZhdWx0LWR1cmF0aW9uXVxuICogQHBhcmFtIHtTdHJpbmd9ICRlYXNlIFskc2V0dGluZy1lZmZlY3QtZGVmYXVsdC1lYXNlXVxuICovXG5AbWl4aW4gaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKFxuICAgICRwcm9wczogb3BhY2l0eSB2aXNpYmlsaXR5LFxuICAgICRkdXJhdGlvbjogJHNldHRpbmctZWZmZWN0LWRlZmF1bHQtZHVyYXRpb24sXG4gICAgJGVhc2U6ICRzZXR0aW5nLWVmZmVjdC1kZWZhdWx0LWVhc2Vcbikge1xuICAgICR0cmFuc2l0aW9uOiBudWxsO1xuXG4gICAgQGVhY2ggJHByb3AgaW4gJHByb3BzIHtcbiAgICAgICAgJHRyYW5zaXRpb246ICRwcm9wICRkdXJhdGlvbiAkZWFzZSwgJHRyYW5zaXRpb247XG4gICAgfVxuICAgIHRyYW5zaXRpb246ICR0cmFuc2l0aW9uO1xuXG4gICAgQGNvbnRlbnQ7XG59XG4iLCIvKipcbiAqIEZvcmNlcyBlbGVtZW50IHZpc2liaWxpdHkuXG4gKi9cbkBtaXhpbiBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlIHtcbiAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEZvcmNlcyBlbGVtZW50IGludmlzaWJpbGl0eS5cbiAqL1xuQG1peGluIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZSB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIG9wYWNpdHk6IDA7XG5cbiAgICBAY29udGVudDtcbn1cbiIsIi8qKlxuICogUHJvdmlkZXMgZ2xvYmFsIGNsYXNzIG5hbWVzIHdpdGggc3BhY2luZyBwcm9wZXJ0aWVzIHNldCBmcm9tICRzZXR0aW5nLXNwYWNpbmcgbWFwLlxuICogQHBhcmFtIHtTdHJpbmd9ICRuYW1lIE1haW4gc2VsZWN0b3IgbmFtZS5cbiAqIEBwYXJhbSB7TGlzdH0gJHNpZGVzIFtbXV0gTGlzdCBvZiBzaWRlcyB0byBzZXQgcHJvcGVydGllcy5cbiAqL1xuQG1peGluIGhlbHBlci1zcGFjaW5nKCRuYW1lLCAkc2lkZXM6IFtdKSB7XG4gICAgQGluY2x1ZGUgaGVscGVyLXNwYWNpbmctb3V0ZXIoJG5hbWUsICRzaWRlcyk7XG4gICAgQGluY2x1ZGUgaGVscGVyLXNwYWNpbmctaW5uZXIoJG5hbWUsICRzaWRlcyk7XG59XG5cbkBtaXhpbiBoZWxwZXItc3BhY2luZy1vdXRlcigkbmFtZSwgJHNpZGVzKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkc3BhY2luZy1uYW1lLCAkc3BhY2luZy12YWx1ZSBpbiAkc2V0dGluZy1zcGFjaW5nIHtcbiAgICAgICAgICAgIEBpZiAkc3BhY2luZy1uYW1lID09ICdkZWZhdWx0JyB7XG4gICAgICAgICAgICAgICAgQGlmIGxlbmd0aCgkc2lkZXMpID09IDAge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46ICRzcGFjaW5nLXZhbHVlO1xuICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBAZWFjaCAkc2lkZSBpbiAkc2lkZXMge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLSN7JHNpZGV9OiAkc3BhY2luZy12YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICYtLSN7JHNwYWNpbmctbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaWYgbGVuZ3RoKCRzaWRlcykgPT0gMCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46ICRzcGFjaW5nLXZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBlYWNoICRzaWRlIGluICRzaWRlcyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLSN7JHNpZGV9OiAkc3BhY2luZy12YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGhlbHBlci1zcGFjaW5nLWlubmVyKCRuYW1lLCAkc2lkZXMpIHtcbiAgICAjeyRuYW1lfS0taW5uZXIge1xuICAgICAgICBAZWFjaCAkc3BhY2luZy1uYW1lLCAkc3BhY2luZy12YWx1ZSBpbiAkc2V0dGluZy1zcGFjaW5nIHtcbiAgICAgICAgICAgIEBpZiAkc3BhY2luZy1uYW1lID09ICdkZWZhdWx0JyB7XG4gICAgICAgICAgICAgICAgQGlmIGxlbmd0aCgkc2lkZXMpID09IDAge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6ICRzcGFjaW5nLXZhbHVlO1xuICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBAZWFjaCAkc2lkZSBpbiAkc2lkZXMge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLSN7JHNpZGV9OiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy0jeyRzaWRlfTogJHNwYWNpbmctdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICBAYXQtcm9vdCAjeyRuYW1lfS0taW5uZXIjeyRuYW1lfS0tI3skc3BhY2luZy1uYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpZiBsZW5ndGgoJHNpZGVzKSA9PSAwIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6ICRzcGFjaW5nLXZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBlYWNoICRzaWRlIGluICRzaWRlcyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLSN7JHNpZGV9OiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctI3skc2lkZX06ICRzcGFjaW5nLXZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuIiwiLyoqXG4gKiBSZXR1cm5zIDAgb3IgdGhlIGZpcnN0IHZhbHVlIGZyb20gdGhlICRlZGdlcyBsaXN0LlxuICogQHBhcmFtIHtMaXN0fSAkZWRnZXMgWyRzZXR0aW5nLWJyZWFrcG9pbnRzXSBMaXN0IGxlbmd0aCBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAyLlxuICogQHJldHVybiB7QmFzZX1cbiAqL1xuQGZ1bmN0aW9uIGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKCRlZGdlcykge1xuICAgIEBpZiBsZW5ndGgoJGVkZ2VzKSA+IDAge1xuICAgICAgICBAcmV0dXJuIG50aCgkZWRnZXMsIDEpO1xuICAgIH1cblxuICAgIEByZXR1cm4gMDtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIG51bGwgb3IgdGhlIGxhc3QgdmFsdWUgZnJvbSB0aGUgJGVkZ2VzIGxpc3QuXG4gKiBAcGFyYW0ge0xpc3R9ICRlZGdlcyBbJHNldHRpbmctYnJlYWtwb2ludHNdIExpc3QgbGVuZ3RoIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDIuXG4gKiBAcmV0dXJuIHtCYXNlfVxuICovXG5AZnVuY3Rpb24gaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1tYXgoJGVkZ2VzKSB7XG4gICAgQGlmIGxlbmd0aCgkZWRnZXMpID4gMSB7XG4gICAgICAgIEByZXR1cm4gbnRoKCRlZGdlcywgMik7XG4gICAgfVxuXG4gICAgQHJldHVybiBudWxsO1xufVxuXG4vKipcbiAqIFNldHMgc2NyZWVuIG1lZGlhIHF1ZXJ5IHdpdGggbWluLXdpZHRoIHNldCB0byAkbWluIHBhcmFtZXRlci5cbiAqIEBwYXJhbSAkbWluIHtOdW1iZXJ9IFswXVxuICogQGNvbnRlbnQgRXh0ZW5kcyBtaXhpbiB3aXRoIHByb3BlcnRpZXMgZm9yIG1lZGlhIHF1ZXJ5LlxuICovXG5AbWl4aW4gaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRtaW46IDApIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRtaW4pIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIFNldHMgc2NyZWVuIG1lZGlhIHF1ZXJ5IHdpdGggYnJlYWtwb2ludHMgcmFuZ2UgcGFzc2VkIGFzIHBhcmFtZXRlcnMuXG4gKiBAcGFyYW0ge051bWJlcn0gJG1pbiBbMF1cbiAqIEBwYXJhbSB7TnVtYmVyfSAkbWF4IFskc2V0dGluZy1ncmlkLW1heC13aWR0aF1cbiAqIEBjb250ZW50IEV4dGVuZHMgbWl4aW4gd2l0aCBwcm9wZXJ0aWVzIGZvciBtZWRpYSBxdWVyeS5cbiAqL1xuQG1peGluIGhlbHBlci1icmVha3BvaW50LW1lZGlhLWJldHdlZW4oJG1pbjogMCwgJG1heDogJHNldHRpbmctZ3JpZC1tYXgtd2lkdGgpIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBTZXRzIHNjcmVlbiBtZWRpYSBxdWVyeSB3aXRoIG1heC13aWR0aCBzZXQgdG8gJG1heCBwYXJhbWV0ZXIuXG4gKiBAcGFyYW0ge051bWJlcn0gJG1heCBbJHNldHRpbmctZ3JpZC1tYXgtd2lkdGhdXG4gKiBAY29udGVudCBFeHRlbmRzIG1peGluIHdpdGggcHJvcGVydGllcyBmb3IgbWVkaWEgcXVlcnkuXG4gKi9cbkBtaXhpbiBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1tYXgoJG1heDogJHNldHRpbmctZ3JpZC1tYXgtd2lkdGgpIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIFNldHMgc2NyZWVuIG1lZGlhIHF1ZXJ5IHdpdGggYnJlYWtwb2ludHMgcmFuZ2UgcGFzc2VkIHRvIHBhcmFtZXRlcnMgb3JcbiAqIHdpdGggbWluLXdpZHRoIHF1ZXJ5IGlmIG9ubHkgb25lIHBhcmFtZXRlciBpcyBwYXNzZWQuXG4gKiBAcGFyYW0ge051bWJlcn0gJG1heCBbJHNldHRpbmctZ3JpZC1tYXgtd2lkdGhdXG4gKiBAY29udGVudCBFeHRlbmRzIG1peGluIHdpdGggcHJvcGVydGllcyBmb3IgbWVkaWEgcXVlcnkuXG4gKi9cbkBtaXhpbiBoZWxwZXItYnJlYWtwb2ludCgkbWluLWJwLCAkbWF4LWJwOiBudWxsKSB7XG4gICAgJGVkZ2VzLW1pbjogbWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgJG1pbi1icCk7XG4gICAgJGVkZ2UtbWluOiBoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbigkZWRnZXMtbWluKTtcblxuICAgIEBpZiAkbWF4LWJwID09IG51bGwge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGVkZ2UtbWluKSB7XG4gICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgICAkZWRnZXMtbWF4OiBtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCAkbWF4LWJwKTtcbiAgICAgICAgJGVkZ2UtbWF4OiBoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1heCgkZWRnZXMtbWF4KTtcblxuICAgICAgICBAaWYgJGVkZ2UtbWF4ID09IG51bGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRlZGdlLW1pbikge1xuICAgICAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLWJldHdlZW4oJGVkZ2UtbWluLCAkZWRnZS1tYXgpIHtcbiAgICAgICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qKlxuICogUmV0dXJucyBjb2x1bW4gcmF0aW8gaW4gcmVsYXRpb24gdG8gY29sdW1ucyBjb3VudC5cbiAqIEBwYXJhbSB7TnVtYmVyfSAkY29sdW1uXG4gKiBAcGFyYW0ge051bWJlcn0gJGNvbHVtbnMgWyRzZXR0aW5nLWdyaWQtY29sdW1uc11cbiAqIEByZXR1cm4ge051bWJlcn1cbiAqL1xuQGZ1bmN0aW9uIGhlbHBlci1ncmlkLXNwYW4oJGNvbHVtbiwgJGNvbHVtbnM6ICRzZXR0aW5nLWdyaWQtY29sdW1ucykge1xuICAgIEByZXR1cm4gY2FsYygoMTAwJSAvICN7JGNvbHVtbnN9KSAqICN7JGNvbHVtbn0pO1xufVxuIiwiLyoqXG4gKiBBZGRzIGNsZWFyaW5nIGZvciBlbGVtZW50IHdpdGggZmxvYXRlZCBjaGlsZCBlbGVtZW50cy5cbiAqL1xuQG1peGluIGhlbHBlci11aS1jbGVhcmZpeCB7XG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEFkZHMgYSBib3gtc2hhZG93IHdpdGggYmFzaWMgdmFsdWVzLlxuICovXG5AbWl4aW4gaGVscGVyLXVpLXNoYWRvdygpIHtcbiAgICBib3gtc2hhZG93OiAwIDJweCA1cHggMXB4ICRzZXR0aW5nLWNvbG9yLXNoYWRvdztcblxuICAgIEBjb250ZW50O1xufVxuIiwiLyoqXG4gKiBDaGVja3MgcGFyYW1ldGVyIG9uIHByZXNlbmNlIGluIHRoZSBibGFja2xpc3Qgb2YgaW1wb3J0cyBzZXR0aW5nIGxpc3QuXG4gKiBAcGFyYW0ge0xpc3R9ICRrZXl3b3Jkc1xuICogQGNvbnRlbnQgRXh0ZW5kcyBtaXhpbiB3aXRoIHByb3BlcnRpZXMgaWYgJGtleXdvcmRzIGlzIG5vdCBvbiB0aGUgYmxhY2tsaXN0LlxuICovXG5AbWl4aW4gaGVscGVyLWltcG9ydCgka2V5d29yZHMuLi4pIHtcbiAgICAkaXNCbGFja2xpc3RlZDogZmFsc2U7XG5cbiAgICBAZWFjaCAka2V5d29yZCBpbiAka2V5d29yZHMge1xuICAgICAgICBAaWYgaW5kZXgoJHNldHRpbmctaW1wb3J0LWJsYWNrbGlzdCwgJGtleXdvcmQpICE9IG51bGwge1xuICAgICAgICAgICAgJGlzQmxhY2tsaXN0ZWQ6IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgbm90ICRpc0JsYWNrbGlzdGVkIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuIiwiQGltcG9ydCAnY2FsYy1yZW0nO1xuXG4uY2VudGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5wdDIwIHtcbiAgICBwYWRkaW5nLXRvcDogcmVtKDIwKTtcbn1cbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJ2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICdoZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICdoZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJ2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJ3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJ3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICdzZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICdzZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJ3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGltcG9ydCAnflNob3BVaS9zdHlsZXMvYmFzaWMnO1xuXG5AaW1wb3J0ICdiYXNpY3MvcmVzZXQnO1xuQGltcG9ydCAnYmFzaWNzL3R5cG9ncmFwaHknO1xuQGltcG9ydCAnYmFzaWNzL2dyaWQnO1xuXG5AaW5jbHVkZSBiYXNpYy1yZXNldDtcbkBpbmNsdWRlIGJhc2ljLXR5cG9ncmFwaHk7XG5AaW5jbHVkZSBiYXNpYy1ncmlkO1xuQGluY2x1ZGUgYmFzaWMtYW5pbWF0aW9uO1xuIiwiLnByaW50LWhpZGRlbiB7XG4gICAgQG1lZGlhIHByaW50IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi5wcmludC12aXNpYmxlIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgaGVpZ2h0OiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICBAbWVkaWEgcHJpbnQge1xuICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIH1cbn1cblxuQG1lZGlhIHByaW50IHtcbiAgICAuY29sLS1wcmludCB7XG4gICAgICAgIEBmb3IgJGNvbHVtbiBmcm9tIDEgdGhyb3VnaCAkc2V0dGluZy1ncmlkLWNvbHVtbnMge1xuICAgICAgICAgICAgJi0jeyRjb2x1bW59IHtcbiAgICAgICAgICAgICAgICB3aWR0aDogaGVscGVyLWdyaWQtc3BhbigkY29sdW1uKTtcbiAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC51c2VyY2VudHJpY3MtYnV0dG9uLCAuc2xpY2stYXJyb3csIC5wcm9kdWN0LWNvbXBhcmVfX2l0ZW0tcmVtb3ZlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi5vcmRlci1kZXRhaWwtcm1hIHtcbiAgICAuaGVhZGVyIHtcbiAgICAgICAgQG1lZGlhIHByaW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKipcbiAqIEFkZHMgYSBzbWFsbCBhcnJvdyBvbiB0aGUgZWxlbWVudCBmb3IgdGhlIGNvbmZpZ3VyZWQgZGlyZWN0aW9uLlxuICovXG5AbWl4aW4gaGVscGVyLWFycm93LWRpcmVjdGlvbigkd2lkdGgsICRjb2xvciwgJGRpcmVjdGlvbjogYm90dG9tKSB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAkd2lkdGg7XG4gICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cbiAgICAgICAgQGlmICRkaXJlY3Rpb24gPT0gdG9wIHtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IHJpZ2h0IHtcbiAgICAgICAgICAgIHJpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGJvdHRvbSB7XG4gICAgICAgICAgICBib3R0b206IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkY29sb3I7XG4gICAgICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBsZWZ0IHtcbiAgICAgICAgICAgIGxlZnQ6IDEwMCU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAkY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cbiIsIi8qKlxuICogRGVmaW5lcyBpbXBvcnQgYmxhY2tsaXN0LiBVc2FnZTogaW1wb3J0IGhlbHBlci5cbiAqL1xuJHNldHRpbmctaW1wb3J0LWJsYWNrbGlzdDogKCk7XG4iLCIkc2V0dGluZy1jb2xvci1tYWluOiAjRTMwNjEzO1xuJHNldHRpbmctY29sb3ItYWx0OiAjRTMwNjEzO1xuXG4kc2V0dGluZy1jb2xvci1ibGFjazogIzAwMDtcblxuJHNldHRpbmctY29sb3Itd2hpdGU6ICNmZmY7XG4kc2V0dGluZy1jb2xvci13aGl0ZS0xOiAjZWFlOGU4O1xuJHNldHRpbmctY29sb3Itd2hpdGUtMjogI2ZlZmVmZTtcblxuJHNldHRpbmctY29sb3ItZ3JheS0xOiAjZGNlMGU1O1xuJHNldHRpbmctY29sb3ItZ3JheS0zOiAjOGY4ZjhmO1xuJHNldHRpbmctY29sb3ItZ3JheS00OiAjNjY2NjY2O1xuJHNldHRpbmctY29sb3ItZ3JheS0yOiAkc2V0dGluZy1jb2xvci1ncmF5LTQ7XG4kc2V0dGluZy1jb2xvci1ncmF5LTU6ICRzZXR0aW5nLWNvbG9yLWdyYXktNDtcbiRzZXR0aW5nLWNvbG9yLWdyYXktNjogI2U3ZWFlZTtcbiRzZXR0aW5nLWNvbG9yLWdyYXktNzogI2YwZjBmMDtcbiRzZXR0aW5nLWNvbG9yLWdyYXktODogIzY2NjY2NjtcbiRzZXR0aW5nLWNvbG9yLWdyYXktOTogI0IzQjNCMztcbiRzZXR0aW5nLWNvbG9yLWdyYXktMTA6ICNGOEY4Rjg7XG4kc2V0dGluZy1jb2xvci1ncmF5LTExOiAjRTdFN0U3O1xuJHNldHRpbmctY29sb3ItZ3JheS0xMjogI0IzQjNCMztcbiRzZXR0aW5nLWNvbG9yLWdyYXktMTM6ICM5OTk5OTk7XG4kc2V0dGluZy1jb2xvci1ncmF5LTE0OiAjQzdDN0M3O1xuJHNldHRpbmctY29sb3ItZ3JheS0xNTogI0Y3RjdGOTtcblxuJHNldHRpbmctY29sb3ItcmVkLTE6ICNFMzA2MTM7XG5cbiRzZXR0aW5nLWNvbG9yLWJsdWUtMTogIzAwNjRiNDtcblxuJHNldHRpbmctY29sb3IteWVsbG93LTE6ICNmZGJlMzY7XG4kc2V0dGluZy1jb2xvci15ZWxsb3ctMjogI2ZkY2I1ZTtcblxuJHNldHRpbmctY29sb3ItZ3JlZW4tMTogIzZDQTUyRjtcbiRzZXR0aW5nLWNvbG9yLWdyZWVuLTI6ICMxZWJlYTA7XG5cbiRzZXR0aW5nLWNvbG9yLWFsdC1ob3ZlcjogbGlnaHRlbigkc2V0dGluZy1jb2xvci1hbHQsIDEwJSk7XG5cbiRzZXR0aW5nLWNvbG9yLWFscGhhLTE6IHJnYmEoJHNldHRpbmctY29sb3ItYmxhY2ssIDAuMSk7XG4kc2V0dGluZy1jb2xvci1hbHBoYS0yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWJsYWNrLCAwLjA1KTtcbiRzZXR0aW5nLWNvbG9yLWFscGhhLTM6IHJnYmEoJHNldHRpbmctY29sb3ItZ3JheS0yLCAwLjMpO1xuJHNldHRpbmctY29sb3ItYWxwaGEtNDogcmdiYSgkc2V0dGluZy1jb2xvci13aGl0ZSwgMC42KTtcbiRzZXR0aW5nLWNvbG9yLWFscGhhLTU6IHJnYmEoJHNldHRpbmctY29sb3ItYWx0LCAwLjEpO1xuJHNldHRpbmctY29sb3ItYWxwaGEtNjogcmdiYSgkc2V0dGluZy1jb2xvci1ibGFjaywgMC4yKTtcbiRzZXR0aW5nLWNvbG9yLWFscGhhLTc6IHJnYmEoJHNldHRpbmctY29sb3ItZ3JheS01LCAwLjgpO1xuJHNldHRpbmctY29sb3ItYWxwaGEtODogcmdiYSgkc2V0dGluZy1jb2xvci15ZWxsb3ctMSwgMC4yKTtcblxuJHNldHRpbmctY29sb3Itb3ZlcmxheTogcmdiYSgkc2V0dGluZy1jb2xvci1ncmF5LTUsIDAuNCk7XG5cbiRzZXR0aW5nLWNvbG9yLWJnOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiRzZXR0aW5nLWNvbG9yLXRleHQ6ICRzZXR0aW5nLWNvbG9yLWdyYXktNDtcbiRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjogJHNldHRpbmctY29sb3ItZ3JheS0xO1xuJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzOiAkc2V0dGluZy1jb2xvci1ncmF5LTM7XG5cbiRzZXR0aW5nLWNvbG9yLXNoYWRvdzogJHNldHRpbmctY29sb3ItYWxwaGEtMTtcbiRzZXR0aW5nLWNvbG9yLXNoYWRvdy0xOiAkc2V0dGluZy1jb2xvci1hbHBoYS0yO1xuJHNldHRpbmctY29sb3Itc2hhZG93LTI6ICRzZXR0aW5nLWNvbG9yLWFscGhhLTY7XG5cbiRzZXR0aW5nLWNvbG9yLWRhcms6ICRzZXR0aW5nLWNvbG9yLWdyYXktMztcblxuJHNldHRpbmctY29sb3ItcGRwLWhyOiAjRTlFN0U3O1xuJHNldHRpbmctY29sb3ItcHJvZHVjdC10YWJzLWJvcmRlcjogI0Q4RDhEODtcblxuJHNldHRpbmctY29sb3ItYWN0aW9uczogKFxuICAgIHN1Y2Nlc3M6ICRzZXR0aW5nLWNvbG9yLWdyZWVuLTIsXG4gICAgd2FybmluZzogJHNldHRpbmctY29sb3IteWVsbG93LTEsXG4gICAgYWxlcnQ6ICRzZXR0aW5nLWNvbG9yLWFsdFxuKTtcblxuJHNldHRpbmctY29sb3ItYnV0dG9uLWFjdGlvbnM6IChcbiAgICBzdWNjZXNzOiAkc2V0dGluZy1jb2xvci1tYWluLFxuICAgIHdhcm5pbmc6ICRzZXR0aW5nLWNvbG9yLXllbGxvdy0xLFxuICAgIGFsZXJ0OiAkc2V0dGluZy1jb2xvci1hbHRcbik7XG4iLCIvKipcbiAqIEFwcGxpZXMgb3Igb3ZlcnJpZGVzIGRlZmF1bHQgc3R5bGVzIG9mIHRoZSBIVE1MIGVsZW1lbnRzIGZvciBhIG1vcmUgcHJlZGljdGFibGVcbiAqIGFuZCBjb252ZW5pZW50IGJlaGF2aW9yIGluIGRpZmZlcmVudCBicm93c2Vycy5cbiAqL1xuQG1peGluIGJhc2ljLXJlc2V0KCkge1xuICAgICoge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItcmVzZXQ7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjphY3RpdmUsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgb3V0bGluZTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaHRtbCB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1yZXNldDtcbiAgICB9XG5cbiAgICAvLyBIVE1MNSBkaXNwbGF5LXJvbGUgcmVzZXQgZm9yIG9sZGVyIGJyb3dzZXJzXG5cbiAgICBhcnRpY2xlLFxuICAgIGFzaWRlLFxuICAgIGRldGFpbHMsXG4gICAgZmlnY2FwdGlvbixcbiAgICBmaWd1cmUsXG4gICAgZm9vdGVyLFxuICAgIGhlYWRlcixcbiAgICBoZ3JvdXAsXG4gICAgbWVudSxcbiAgICBuYXYsXG4gICAgc2VjdGlvbixcbiAgICBmb3JtIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgb2wsXG4gICAgdWwge1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIH1cblxuICAgIGJsb2NrcXVvdGUsXG4gICAgcSB7XG4gICAgICAgIHF1b3Rlczogbm9uZTtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0YWJsZSB7XG4gICAgICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgICAgIGJvcmRlci1zcGFjaW5nOiAwO1xuICAgIH1cblxuICAgIGltZyB7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICAuY3VzdG9tLWVsZW1lbnQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cbiIsIi8qKlxuICogU2V0cyBmb250IGFuZCBiYXNpYyB0eXBvZ3JhcGh5IHN0eWxlcyBmb3IgdGhlIG1haW4gSFRNTCBlbGVtZW50cy5cbiAqL1xuQG1peGluIGJhc2ljLXR5cG9ncmFwaHkoKSB7XG4gICAgaHRtbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHNldHRpbmctZm9udC1zaXplLWJhc2U7XG4gICAgfVxuXG4gICAgYm9keSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoZGVmYXVsdCk7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICBmb250LWZhbWlseTogJHNldHRpbmctZm9udC1mYW1pbHk7XG4gICAgfVxuXG4gICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgaCN7JGl9IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYixcbiAgICBzdHJvbmcge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgfVxuXG4gICAgaSxcbiAgICBlbSxcbiAgICBjaXRlIHtcbiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIH1cblxuICAgIGhyIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcbiAgICB9XG5cbiAgICBzbWFsbCB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgIH1cblxuICAgIGJpZyB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICB9XG5cbiAgICBwLFxuICAgIGJsb2NrcXVvdGUge1xuICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuIiwiLyoqXG4gKiBQcm92aWRlcyBnbG9iYWwgY2xhc3MgbmFtZXMgZm9yIHRoZSBjdXN0b20gcmVzcG9uc2l2ZSBncmlkIHN5c3RlbSB3aXRoIGZsZXhpYmxlIGNvbHVtbnNcbiAqIGFuZCBjb25maWd1cmFibGUgY29sdW1ucyBjb3VudCwgY29udGFpbmVyIHdpdGggbWF4aW11bSBjb250ZW50IHdpZHRoXG4gKiBhbmQgbW9kaWZpZXJzIGZvciBhbGlnbm1lbnQuXG4gKiBHcmlkIHN5c3RlbSBwYXJhbWV0ZXJzIGNhbiBiZSBjdXN0b21pemVkIGluIGdyaWQgc2V0dGluZ3MgZmlsZS5cbiAqL1xuQG1peGluIGJhc2ljLWdyaWQoKSB7XG4gICAgLmNvbnRhaW5lciB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAkc2V0dGluZy1ncmlkLW1heC13aWR0aDtcbiAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgIH1cblxuICAgIC5jb2wge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuXG4gICAgICAgIEBlYWNoICRicmVha3BvaW50LCAkZWRnZXMgaW4gJHNldHRpbmctYnJlYWtwb2ludHMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKCRlZGdlcykpIHtcbiAgICAgICAgICAgICAgICBAZm9yICRjb2x1bW4gZnJvbSAxIHRocm91Z2ggJHNldHRpbmctZ3JpZC1jb2x1bW5zIHtcbiAgICAgICAgICAgICAgICAgICAgJi0tI3skYnJlYWtwb2ludH0tI3skY29sdW1ufSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogaGVscGVyLWdyaWQtc3BhbigkY29sdW1uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaGVscGVyLWdyaWQtc3BhbigkY29sdW1uKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10b3Age1xuICAgICAgICAgICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGVmdCB7XG4gICAgICAgICAgICBqdXN0aWZ5LXNlbGY6IGZsZXgtc3RhcnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yaWdodCB7XG4gICAgICAgICAgICBqdXN0aWZ5LXNlbGY6IGZsZXgtZW5kO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1zZWxmOiBjZW50ZXI7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtZ3V0dGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNldHRpbmctZ3JpZC1ndXR0ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZ3JpZCB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG5cbiAgICAgICAgJi0tdG9wIHtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxlZnQge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmlnaHQge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcblxuICAgICAgICAgICAgJiAuY29sIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1qdXN0aWZ5IHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuICAgICAgICAgICAgJiAuY29sIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG5cbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5vd3JhcCB7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtZ3V0dGVyIHtcbiAgICAgICAgICAgIG1hcmdpbjogMCAoLSRzZXR0aW5nLWdyaWQtZ3V0dGVyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuY29udGFpbmVyIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogJHNldHRpbmctZ3JpZC1tYXgtd2lkdGg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cbiIsIi8qKlxuICogSW1wbGVtZW50cyBzaW1wbGUgYW5pbWF0aW9ucy5cbiAqL1xuQG1peGluIGJhc2ljLWFuaW1hdGlvbigpIHtcbiAgICBAa2V5ZnJhbWVzIHNwaW4tdG8ge1xuICAgICAgICBmcm9tIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgdG8ge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBrZXlmcmFtZXMgcHVsc2UtaGlnaGxpZ2h0IHtcbiAgICAgICAgMCUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAgICAgfVxuXG4gICAgICAgIDUwJSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMik7XG4gICAgICAgIH1cblxuICAgICAgICAxMDAlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cbiIsIi8qIVxuICogRm9udCBBd2Vzb21lIFBybyA1LjE1LjQgYnkgQGZvbnRhd2Vzb21lIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb21cbiAqIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlIChDb21tZXJjaWFsIExpY2Vuc2UpXG4gKi9cbkBpbXBvcnQgJ3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdtaXhpbnMnO1xuQGltcG9ydCAnY29yZSc7XG5AaW1wb3J0ICdsYXJnZXInO1xuQGltcG9ydCAnZml4ZWQtd2lkdGgnO1xuQGltcG9ydCAnbGlzdCc7XG5AaW1wb3J0ICdib3JkZXJlZC1wdWxsZWQnO1xuQGltcG9ydCAnYW5pbWF0ZWQnO1xuQGltcG9ydCAncm90YXRlZC1mbGlwcGVkJztcbkBpbXBvcnQgJ3N0YWNrZWQnO1xuQGltcG9ydCAnaWNvbnMnO1xuQGltcG9ydCAnc2NyZWVuLXJlYWRlcic7XG4iLCIvLyBCYXNlIENsYXNzIERlZmluaXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLiN7JGZhLWNzcy1wcmVmaXh9LFxuLmZhcyxcbi5mYXIsXG4uZmFsLFxuLmZhZCxcbi5mYWIge1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICB0ZXh0LXJlbmRlcmluZzogYXV0bztcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbiVmYS1pY29uIHtcbiAgQGluY2x1ZGUgZmEtaWNvbjtcbn1cbiIsIi8vIEljb24gU2l6ZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gbWFrZXMgdGhlIGZvbnQgMzMlIGxhcmdlciByZWxhdGl2ZSB0byB0aGUgaWNvbiBjb250YWluZXJcbi4jeyRmYS1jc3MtcHJlZml4fS1sZyB7XG4gIGZvbnQtc2l6ZTogY2FsYyg0ZW0gLyAzKTtcbiAgbGluZS1oZWlnaHQ6IGNhbGMoM2VtIC8gNCk7XG4gIHZlcnRpY2FsLWFsaWduOiAtLjA2NjdlbTtcbn1cblxuLiN7JGZhLWNzcy1wcmVmaXh9LXhzIHtcbiAgZm9udC1zaXplOiAuNzVlbTtcbn1cblxuLiN7JGZhLWNzcy1wcmVmaXh9LXNtIHtcbiAgZm9udC1zaXplOiAuODc1ZW07XG59XG5cbkBmb3IgJGkgZnJvbSAxIHRocm91Z2ggMTAge1xuICAuI3skZmEtY3NzLXByZWZpeH0tI3skaX14IHtcbiAgICBmb250LXNpemU6ICRpICogMWVtO1xuICB9XG59XG4iLCIvLyBGaXhlZCBXaWR0aCBJY29uc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZ3IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aWR0aDogJGZhLWZ3LXdpZHRoO1xufVxuIiwiLy8gVmFyaWFibGVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kZmEtZm9udC1wYXRoOiAgICAgICAgIFwiLi4vZm9udHMvZm9udC1hd2Vzb21lXCIgIWRlZmF1bHQ7XG4kZmEtZm9udC1zaXplLWJhc2U6ICAgIDE2cHggIWRlZmF1bHQ7XG4kZmEtZm9udC1kaXNwbGF5OiAgICAgIGF1dG87XG4kZmEtY3NzLXByZWZpeDogICAgICAgIGZhICFkZWZhdWx0O1xuJGZhLXZlcnNpb246ICAgICAgICAgICBcIjUuMTUuNFwiICFkZWZhdWx0O1xuJGZhLWJvcmRlci1jb2xvcjogICAgICAjZWVlICFkZWZhdWx0O1xuJGZhLWludmVyc2U6ICAgICAgICAgICAjZmZmICFkZWZhdWx0O1xuJGZhLWxpLXdpZHRoOiAgICAgICAgICAxLjVlbSAhZGVmYXVsdDtcbiRmYS1mdy13aWR0aDogICAgICAgICAgY2FsYygyMGVtIC8gMTYpO1xuJGZhLXByaW1hcnktb3BhY2l0eTogICAxICFkZWZhdWx0O1xuJGZhLXNlY29uZGFyeS1vcGFjaXR5OiAuNCAhZGVmYXVsdDtcblxuLy8gQ29udmVuaWVuY2UgZnVuY3Rpb24gdXNlZCB0byBzZXQgY29udGVudCBwcm9wZXJ0eVxuQGZ1bmN0aW9uIGZhLWNvbnRlbnQoJGZhLXZhcikge1xuICBAcmV0dXJuIHVucXVvdGUoXCJcXFwiI3sgJGZhLXZhciB9XFxcIlwiKTtcbn1cblxuJGZhLXZhci01MDBweDogXFxmMjZlO1xuJGZhLXZhci1hYmFjdXM6IFxcZjY0MDtcbiRmYS12YXItYWNjZXNzaWJsZS1pY29uOiBcXGYzNjg7XG4kZmEtdmFyLWFjY3Vzb2Z0OiBcXGYzNjk7XG4kZmEtdmFyLWFjb3JuOiBcXGY2YWU7XG4kZmEtdmFyLWFjcXVpc2l0aW9ucy1pbmNvcnBvcmF0ZWQ6IFxcZjZhZjtcbiRmYS12YXItYWQ6IFxcZjY0MTtcbiRmYS12YXItYWRkcmVzcy1ib29rOiBcXGYyYjk7XG4kZmEtdmFyLWFkZHJlc3MtY2FyZDogXFxmMmJiO1xuJGZhLXZhci1hZGp1c3Q6IFxcZjA0MjtcbiRmYS12YXItYWRuOiBcXGYxNzA7XG4kZmEtdmFyLWFkdmVyc2FsOiBcXGYzNmE7XG4kZmEtdmFyLWFmZmlsaWF0ZXRoZW1lOiBcXGYzNmI7XG4kZmEtdmFyLWFpci1jb25kaXRpb25lcjogXFxmOGY0O1xuJGZhLXZhci1haXItZnJlc2hlbmVyOiBcXGY1ZDA7XG4kZmEtdmFyLWFpcmJuYjogXFxmODM0O1xuJGZhLXZhci1hbGFybS1jbG9jazogXFxmMzRlO1xuJGZhLXZhci1hbGFybS1leGNsYW1hdGlvbjogXFxmODQzO1xuJGZhLXZhci1hbGFybS1wbHVzOiBcXGY4NDQ7XG4kZmEtdmFyLWFsYXJtLXNub296ZTogXFxmODQ1O1xuJGZhLXZhci1hbGJ1bTogXFxmODlmO1xuJGZhLXZhci1hbGJ1bS1jb2xsZWN0aW9uOiBcXGY4YTA7XG4kZmEtdmFyLWFsZ29saWE6IFxcZjM2YztcbiRmYS12YXItYWxpY29ybjogXFxmNmIwO1xuJGZhLXZhci1hbGllbjogXFxmOGY1O1xuJGZhLXZhci1hbGllbi1tb25zdGVyOiBcXGY4ZjY7XG4kZmEtdmFyLWFsaWduLWNlbnRlcjogXFxmMDM3O1xuJGZhLXZhci1hbGlnbi1qdXN0aWZ5OiBcXGYwMzk7XG4kZmEtdmFyLWFsaWduLWxlZnQ6IFxcZjAzNjtcbiRmYS12YXItYWxpZ24tcmlnaHQ6IFxcZjAzODtcbiRmYS12YXItYWxpZ24tc2xhc2g6IFxcZjg0NjtcbiRmYS12YXItYWxpcGF5OiBcXGY2NDI7XG4kZmEtdmFyLWFsbGVyZ2llczogXFxmNDYxO1xuJGZhLXZhci1hbWF6b246IFxcZjI3MDtcbiRmYS12YXItYW1hem9uLXBheTogXFxmNDJjO1xuJGZhLXZhci1hbWJ1bGFuY2U6IFxcZjBmOTtcbiRmYS12YXItYW1lcmljYW4tc2lnbi1sYW5ndWFnZS1pbnRlcnByZXRpbmc6IFxcZjJhMztcbiRmYS12YXItYW1pbGlhOiBcXGYzNmQ7XG4kZmEtdmFyLWFtcC1ndWl0YXI6IFxcZjhhMTtcbiRmYS12YXItYW5hbHl0aWNzOiBcXGY2NDM7XG4kZmEtdmFyLWFuY2hvcjogXFxmMTNkO1xuJGZhLXZhci1hbmRyb2lkOiBcXGYxN2I7XG4kZmEtdmFyLWFuZ2VsOiBcXGY3Nzk7XG4kZmEtdmFyLWFuZ2VsbGlzdDogXFxmMjA5O1xuJGZhLXZhci1hbmdsZS1kb3VibGUtZG93bjogXFxmMTAzO1xuJGZhLXZhci1hbmdsZS1kb3VibGUtbGVmdDogXFxmMTAwO1xuJGZhLXZhci1hbmdsZS1kb3VibGUtcmlnaHQ6IFxcZjEwMTtcbiRmYS12YXItYW5nbGUtZG91YmxlLXVwOiBcXGYxMDI7XG4kZmEtdmFyLWFuZ2xlLWRvd246IFxcZjEwNztcbiRmYS12YXItYW5nbGUtbGVmdDogXFxmMTA0O1xuJGZhLXZhci1hbmdsZS1yaWdodDogXFxmMTA1O1xuJGZhLXZhci1hbmdsZS11cDogXFxmMTA2O1xuJGZhLXZhci1hbmdyeTogXFxmNTU2O1xuJGZhLXZhci1hbmdyeWNyZWF0aXZlOiBcXGYzNmU7XG4kZmEtdmFyLWFuZ3VsYXI6IFxcZjQyMDtcbiRmYS12YXItYW5raDogXFxmNjQ0O1xuJGZhLXZhci1hcHAtc3RvcmU6IFxcZjM2ZjtcbiRmYS12YXItYXBwLXN0b3JlLWlvczogXFxmMzcwO1xuJGZhLXZhci1hcHBlcjogXFxmMzcxO1xuJGZhLXZhci1hcHBsZTogXFxmMTc5O1xuJGZhLXZhci1hcHBsZS1hbHQ6IFxcZjVkMTtcbiRmYS12YXItYXBwbGUtY3JhdGU6IFxcZjZiMTtcbiRmYS12YXItYXBwbGUtcGF5OiBcXGY0MTU7XG4kZmEtdmFyLWFyY2hpdmU6IFxcZjE4NztcbiRmYS12YXItYXJjaHdheTogXFxmNTU3O1xuJGZhLXZhci1hcnJvdy1hbHQtY2lyY2xlLWRvd246IFxcZjM1ODtcbiRmYS12YXItYXJyb3ctYWx0LWNpcmNsZS1sZWZ0OiBcXGYzNTk7XG4kZmEtdmFyLWFycm93LWFsdC1jaXJjbGUtcmlnaHQ6IFxcZjM1YTtcbiRmYS12YXItYXJyb3ctYWx0LWNpcmNsZS11cDogXFxmMzViO1xuJGZhLXZhci1hcnJvdy1hbHQtZG93bjogXFxmMzU0O1xuJGZhLXZhci1hcnJvdy1hbHQtZnJvbS1ib3R0b206IFxcZjM0NjtcbiRmYS12YXItYXJyb3ctYWx0LWZyb20tbGVmdDogXFxmMzQ3O1xuJGZhLXZhci1hcnJvdy1hbHQtZnJvbS1yaWdodDogXFxmMzQ4O1xuJGZhLXZhci1hcnJvdy1hbHQtZnJvbS10b3A6IFxcZjM0OTtcbiRmYS12YXItYXJyb3ctYWx0LWxlZnQ6IFxcZjM1NTtcbiRmYS12YXItYXJyb3ctYWx0LXJpZ2h0OiBcXGYzNTY7XG4kZmEtdmFyLWFycm93LWFsdC1zcXVhcmUtZG93bjogXFxmMzUwO1xuJGZhLXZhci1hcnJvdy1hbHQtc3F1YXJlLWxlZnQ6IFxcZjM1MTtcbiRmYS12YXItYXJyb3ctYWx0LXNxdWFyZS1yaWdodDogXFxmMzUyO1xuJGZhLXZhci1hcnJvdy1hbHQtc3F1YXJlLXVwOiBcXGYzNTM7XG4kZmEtdmFyLWFycm93LWFsdC10by1ib3R0b206IFxcZjM0YTtcbiRmYS12YXItYXJyb3ctYWx0LXRvLWxlZnQ6IFxcZjM0YjtcbiRmYS12YXItYXJyb3ctYWx0LXRvLXJpZ2h0OiBcXGYzNGM7XG4kZmEtdmFyLWFycm93LWFsdC10by10b3A6IFxcZjM0ZDtcbiRmYS12YXItYXJyb3ctYWx0LXVwOiBcXGYzNTc7XG4kZmEtdmFyLWFycm93LWNpcmNsZS1kb3duOiBcXGYwYWI7XG4kZmEtdmFyLWFycm93LWNpcmNsZS1sZWZ0OiBcXGYwYTg7XG4kZmEtdmFyLWFycm93LWNpcmNsZS1yaWdodDogXFxmMGE5O1xuJGZhLXZhci1hcnJvdy1jaXJjbGUtdXA6IFxcZjBhYTtcbiRmYS12YXItYXJyb3ctZG93bjogXFxmMDYzO1xuJGZhLXZhci1hcnJvdy1mcm9tLWJvdHRvbTogXFxmMzQyO1xuJGZhLXZhci1hcnJvdy1mcm9tLWxlZnQ6IFxcZjM0MztcbiRmYS12YXItYXJyb3ctZnJvbS1yaWdodDogXFxmMzQ0O1xuJGZhLXZhci1hcnJvdy1mcm9tLXRvcDogXFxmMzQ1O1xuJGZhLXZhci1hcnJvdy1sZWZ0OiBcXGYwNjA7XG4kZmEtdmFyLWFycm93LXJpZ2h0OiBcXGYwNjE7XG4kZmEtdmFyLWFycm93LXNxdWFyZS1kb3duOiBcXGYzMzk7XG4kZmEtdmFyLWFycm93LXNxdWFyZS1sZWZ0OiBcXGYzM2E7XG4kZmEtdmFyLWFycm93LXNxdWFyZS1yaWdodDogXFxmMzNiO1xuJGZhLXZhci1hcnJvdy1zcXVhcmUtdXA6IFxcZjMzYztcbiRmYS12YXItYXJyb3ctdG8tYm90dG9tOiBcXGYzM2Q7XG4kZmEtdmFyLWFycm93LXRvLWxlZnQ6IFxcZjMzZTtcbiRmYS12YXItYXJyb3ctdG8tcmlnaHQ6IFxcZjM0MDtcbiRmYS12YXItYXJyb3ctdG8tdG9wOiBcXGYzNDE7XG4kZmEtdmFyLWFycm93LXVwOiBcXGYwNjI7XG4kZmEtdmFyLWFycm93czogXFxmMDQ3O1xuJGZhLXZhci1hcnJvd3MtYWx0OiBcXGYwYjI7XG4kZmEtdmFyLWFycm93cy1hbHQtaDogXFxmMzM3O1xuJGZhLXZhci1hcnJvd3MtYWx0LXY6IFxcZjMzODtcbiRmYS12YXItYXJyb3dzLWg6IFxcZjA3ZTtcbiRmYS12YXItYXJyb3dzLXY6IFxcZjA3ZDtcbiRmYS12YXItYXJ0c3RhdGlvbjogXFxmNzdhO1xuJGZhLXZhci1hc3Npc3RpdmUtbGlzdGVuaW5nLXN5c3RlbXM6IFxcZjJhMjtcbiRmYS12YXItYXN0ZXJpc2s6IFxcZjA2OTtcbiRmYS12YXItYXN5bW1ldHJpazogXFxmMzcyO1xuJGZhLXZhci1hdDogXFxmMWZhO1xuJGZhLXZhci1hdGxhczogXFxmNTU4O1xuJGZhLXZhci1hdGxhc3NpYW46IFxcZjc3YjtcbiRmYS12YXItYXRvbTogXFxmNWQyO1xuJGZhLXZhci1hdG9tLWFsdDogXFxmNWQzO1xuJGZhLXZhci1hdWRpYmxlOiBcXGYzNzM7XG4kZmEtdmFyLWF1ZGlvLWRlc2NyaXB0aW9uOiBcXGYyOWU7XG4kZmEtdmFyLWF1dG9wcmVmaXhlcjogXFxmNDFjO1xuJGZhLXZhci1hdmlhbmV4OiBcXGYzNzQ7XG4kZmEtdmFyLWF2aWF0bzogXFxmNDIxO1xuJGZhLXZhci1hd2FyZDogXFxmNTU5O1xuJGZhLXZhci1hd3M6IFxcZjM3NTtcbiRmYS12YXItYXhlOiBcXGY2YjI7XG4kZmEtdmFyLWF4ZS1iYXR0bGU6IFxcZjZiMztcbiRmYS12YXItYmFieTogXFxmNzdjO1xuJGZhLXZhci1iYWJ5LWNhcnJpYWdlOiBcXGY3N2Q7XG4kZmEtdmFyLWJhY2twYWNrOiBcXGY1ZDQ7XG4kZmEtdmFyLWJhY2tzcGFjZTogXFxmNTVhO1xuJGZhLXZhci1iYWNrd2FyZDogXFxmMDRhO1xuJGZhLXZhci1iYWNvbjogXFxmN2U1O1xuJGZhLXZhci1iYWN0ZXJpYTogXFxlMDU5O1xuJGZhLXZhci1iYWN0ZXJpdW06IFxcZTA1YTtcbiRmYS12YXItYmFkZ2U6IFxcZjMzNTtcbiRmYS12YXItYmFkZ2UtY2hlY2s6IFxcZjMzNjtcbiRmYS12YXItYmFkZ2UtZG9sbGFyOiBcXGY2NDU7XG4kZmEtdmFyLWJhZGdlLXBlcmNlbnQ6IFxcZjY0NjtcbiRmYS12YXItYmFkZ2Utc2hlcmlmZjogXFxmOGEyO1xuJGZhLXZhci1iYWRnZXItaG9uZXk6IFxcZjZiNDtcbiRmYS12YXItYmFncy1zaG9wcGluZzogXFxmODQ3O1xuJGZhLXZhci1iYWhhaTogXFxmNjY2O1xuJGZhLXZhci1iYWxhbmNlLXNjYWxlOiBcXGYyNGU7XG4kZmEtdmFyLWJhbGFuY2Utc2NhbGUtbGVmdDogXFxmNTE1O1xuJGZhLXZhci1iYWxhbmNlLXNjYWxlLXJpZ2h0OiBcXGY1MTY7XG4kZmEtdmFyLWJhbGwtcGlsZTogXFxmNzdlO1xuJGZhLXZhci1iYWxsb3Q6IFxcZjczMjtcbiRmYS12YXItYmFsbG90LWNoZWNrOiBcXGY3MzM7XG4kZmEtdmFyLWJhbjogXFxmMDVlO1xuJGZhLXZhci1iYW5kLWFpZDogXFxmNDYyO1xuJGZhLXZhci1iYW5kY2FtcDogXFxmMmQ1O1xuJGZhLXZhci1iYW5qbzogXFxmOGEzO1xuJGZhLXZhci1iYXJjb2RlOiBcXGYwMmE7XG4kZmEtdmFyLWJhcmNvZGUtYWx0OiBcXGY0NjM7XG4kZmEtdmFyLWJhcmNvZGUtcmVhZDogXFxmNDY0O1xuJGZhLXZhci1iYXJjb2RlLXNjYW46IFxcZjQ2NTtcbiRmYS12YXItYmFyczogXFxmMGM5O1xuJGZhLXZhci1iYXNlYmFsbDogXFxmNDMyO1xuJGZhLXZhci1iYXNlYmFsbC1iYWxsOiBcXGY0MzM7XG4kZmEtdmFyLWJhc2tldGJhbGwtYmFsbDogXFxmNDM0O1xuJGZhLXZhci1iYXNrZXRiYWxsLWhvb3A6IFxcZjQzNTtcbiRmYS12YXItYmF0OiBcXGY2YjU7XG4kZmEtdmFyLWJhdGg6IFxcZjJjZDtcbiRmYS12YXItYmF0dGVyeS1ib2x0OiBcXGYzNzY7XG4kZmEtdmFyLWJhdHRlcnktZW1wdHk6IFxcZjI0NDtcbiRmYS12YXItYmF0dGVyeS1mdWxsOiBcXGYyNDA7XG4kZmEtdmFyLWJhdHRlcnktaGFsZjogXFxmMjQyO1xuJGZhLXZhci1iYXR0ZXJ5LXF1YXJ0ZXI6IFxcZjI0MztcbiRmYS12YXItYmF0dGVyeS1zbGFzaDogXFxmMzc3O1xuJGZhLXZhci1iYXR0ZXJ5LXRocmVlLXF1YXJ0ZXJzOiBcXGYyNDE7XG4kZmEtdmFyLWJhdHRsZS1uZXQ6IFxcZjgzNTtcbiRmYS12YXItYmVkOiBcXGYyMzY7XG4kZmEtdmFyLWJlZC1hbHQ6IFxcZjhmNztcbiRmYS12YXItYmVkLWJ1bms6IFxcZjhmODtcbiRmYS12YXItYmVkLWVtcHR5OiBcXGY4Zjk7XG4kZmEtdmFyLWJlZXI6IFxcZjBmYztcbiRmYS12YXItYmVoYW5jZTogXFxmMWI0O1xuJGZhLXZhci1iZWhhbmNlLXNxdWFyZTogXFxmMWI1O1xuJGZhLXZhci1iZWxsOiBcXGYwZjM7XG4kZmEtdmFyLWJlbGwtZXhjbGFtYXRpb246IFxcZjg0ODtcbiRmYS12YXItYmVsbC1vbjogXFxmOGZhO1xuJGZhLXZhci1iZWxsLXBsdXM6IFxcZjg0OTtcbiRmYS12YXItYmVsbC1zY2hvb2w6IFxcZjVkNTtcbiRmYS12YXItYmVsbC1zY2hvb2wtc2xhc2g6IFxcZjVkNjtcbiRmYS12YXItYmVsbC1zbGFzaDogXFxmMWY2O1xuJGZhLXZhci1iZWxsczogXFxmNzdmO1xuJGZhLXZhci1iZXRhbWF4OiBcXGY4YTQ7XG4kZmEtdmFyLWJlemllci1jdXJ2ZTogXFxmNTViO1xuJGZhLXZhci1iaWJsZTogXFxmNjQ3O1xuJGZhLXZhci1iaWN5Y2xlOiBcXGYyMDY7XG4kZmEtdmFyLWJpa2luZzogXFxmODRhO1xuJGZhLXZhci1iaWtpbmctbW91bnRhaW46IFxcZjg0YjtcbiRmYS12YXItYmltb2JqZWN0OiBcXGYzNzg7XG4kZmEtdmFyLWJpbm9jdWxhcnM6IFxcZjFlNTtcbiRmYS12YXItYmlvaGF6YXJkOiBcXGY3ODA7XG4kZmEtdmFyLWJpcnRoZGF5LWNha2U6IFxcZjFmZDtcbiRmYS12YXItYml0YnVja2V0OiBcXGYxNzE7XG4kZmEtdmFyLWJpdGNvaW46IFxcZjM3OTtcbiRmYS12YXItYml0eTogXFxmMzdhO1xuJGZhLXZhci1ibGFjay10aWU6IFxcZjI3ZTtcbiRmYS12YXItYmxhY2tiZXJyeTogXFxmMzdiO1xuJGZhLXZhci1ibGFua2V0OiBcXGY0OTg7XG4kZmEtdmFyLWJsZW5kZXI6IFxcZjUxNztcbiRmYS12YXItYmxlbmRlci1waG9uZTogXFxmNmI2O1xuJGZhLXZhci1ibGluZDogXFxmMjlkO1xuJGZhLXZhci1ibGluZHM6IFxcZjhmYjtcbiRmYS12YXItYmxpbmRzLW9wZW46IFxcZjhmYztcbiRmYS12YXItYmxpbmRzLXJhaXNlZDogXFxmOGZkO1xuJGZhLXZhci1ibG9nOiBcXGY3ODE7XG4kZmEtdmFyLWJsb2dnZXI6IFxcZjM3YztcbiRmYS12YXItYmxvZ2dlci1iOiBcXGYzN2Q7XG4kZmEtdmFyLWJsdWV0b290aDogXFxmMjkzO1xuJGZhLXZhci1ibHVldG9vdGgtYjogXFxmMjk0O1xuJGZhLXZhci1ib2xkOiBcXGYwMzI7XG4kZmEtdmFyLWJvbHQ6IFxcZjBlNztcbiRmYS12YXItYm9tYjogXFxmMWUyO1xuJGZhLXZhci1ib25lOiBcXGY1ZDc7XG4kZmEtdmFyLWJvbmUtYnJlYWs6IFxcZjVkODtcbiRmYS12YXItYm9uZzogXFxmNTVjO1xuJGZhLXZhci1ib29rOiBcXGYwMmQ7XG4kZmEtdmFyLWJvb2stYWx0OiBcXGY1ZDk7XG4kZmEtdmFyLWJvb2stZGVhZDogXFxmNmI3O1xuJGZhLXZhci1ib29rLWhlYXJ0OiBcXGY0OTk7XG4kZmEtdmFyLWJvb2stbWVkaWNhbDogXFxmN2U2O1xuJGZhLXZhci1ib29rLW9wZW46IFxcZjUxODtcbiRmYS12YXItYm9vay1yZWFkZXI6IFxcZjVkYTtcbiRmYS12YXItYm9vay1zcGVsbHM6IFxcZjZiODtcbiRmYS12YXItYm9vay11c2VyOiBcXGY3ZTc7XG4kZmEtdmFyLWJvb2ttYXJrOiBcXGYwMmU7XG4kZmEtdmFyLWJvb2tzOiBcXGY1ZGI7XG4kZmEtdmFyLWJvb2tzLW1lZGljYWw6IFxcZjdlODtcbiRmYS12YXItYm9vbWJveDogXFxmOGE1O1xuJGZhLXZhci1ib290OiBcXGY3ODI7XG4kZmEtdmFyLWJvb3RoLWN1cnRhaW46IFxcZjczNDtcbiRmYS12YXItYm9vdHN0cmFwOiBcXGY4MzY7XG4kZmEtdmFyLWJvcmRlci1hbGw6IFxcZjg0YztcbiRmYS12YXItYm9yZGVyLWJvdHRvbTogXFxmODRkO1xuJGZhLXZhci1ib3JkZXItY2VudGVyLWg6IFxcZjg5YztcbiRmYS12YXItYm9yZGVyLWNlbnRlci12OiBcXGY4OWQ7XG4kZmEtdmFyLWJvcmRlci1pbm5lcjogXFxmODRlO1xuJGZhLXZhci1ib3JkZXItbGVmdDogXFxmODRmO1xuJGZhLXZhci1ib3JkZXItbm9uZTogXFxmODUwO1xuJGZhLXZhci1ib3JkZXItb3V0ZXI6IFxcZjg1MTtcbiRmYS12YXItYm9yZGVyLXJpZ2h0OiBcXGY4NTI7XG4kZmEtdmFyLWJvcmRlci1zdHlsZTogXFxmODUzO1xuJGZhLXZhci1ib3JkZXItc3R5bGUtYWx0OiBcXGY4NTQ7XG4kZmEtdmFyLWJvcmRlci10b3A6IFxcZjg1NTtcbiRmYS12YXItYm93LWFycm93OiBcXGY2Yjk7XG4kZmEtdmFyLWJvd2xpbmctYmFsbDogXFxmNDM2O1xuJGZhLXZhci1ib3dsaW5nLXBpbnM6IFxcZjQzNztcbiRmYS12YXItYm94OiBcXGY0NjY7XG4kZmEtdmFyLWJveC1hbHQ6IFxcZjQ5YTtcbiRmYS12YXItYm94LWJhbGxvdDogXFxmNzM1O1xuJGZhLXZhci1ib3gtY2hlY2s6IFxcZjQ2NztcbiRmYS12YXItYm94LWZyYWdpbGU6IFxcZjQ5YjtcbiRmYS12YXItYm94LWZ1bGw6IFxcZjQ5YztcbiRmYS12YXItYm94LWhlYXJ0OiBcXGY0OWQ7XG4kZmEtdmFyLWJveC1vcGVuOiBcXGY0OWU7XG4kZmEtdmFyLWJveC10aXNzdWU6IFxcZTA1YjtcbiRmYS12YXItYm94LXVwOiBcXGY0OWY7XG4kZmEtdmFyLWJveC11c2Q6IFxcZjRhMDtcbiRmYS12YXItYm94ZXM6IFxcZjQ2ODtcbiRmYS12YXItYm94ZXMtYWx0OiBcXGY0YTE7XG4kZmEtdmFyLWJveGluZy1nbG92ZTogXFxmNDM4O1xuJGZhLXZhci1icmFja2V0czogXFxmN2U5O1xuJGZhLXZhci1icmFja2V0cy1jdXJseTogXFxmN2VhO1xuJGZhLXZhci1icmFpbGxlOiBcXGYyYTE7XG4kZmEtdmFyLWJyYWluOiBcXGY1ZGM7XG4kZmEtdmFyLWJyZWFkLWxvYWY6IFxcZjdlYjtcbiRmYS12YXItYnJlYWQtc2xpY2U6IFxcZjdlYztcbiRmYS12YXItYnJpZWZjYXNlOiBcXGYwYjE7XG4kZmEtdmFyLWJyaWVmY2FzZS1tZWRpY2FsOiBcXGY0Njk7XG4kZmEtdmFyLWJyaW5nLWZvcndhcmQ6IFxcZjg1NjtcbiRmYS12YXItYnJpbmctZnJvbnQ6IFxcZjg1NztcbiRmYS12YXItYnJvYWRjYXN0LXRvd2VyOiBcXGY1MTk7XG4kZmEtdmFyLWJyb29tOiBcXGY1MWE7XG4kZmEtdmFyLWJyb3dzZXI6IFxcZjM3ZTtcbiRmYS12YXItYnJ1c2g6IFxcZjU1ZDtcbiRmYS12YXItYnRjOiBcXGYxNWE7XG4kZmEtdmFyLWJ1ZmZlcjogXFxmODM3O1xuJGZhLXZhci1idWc6IFxcZjE4ODtcbiRmYS12YXItYnVpbGRpbmc6IFxcZjFhZDtcbiRmYS12YXItYnVsbGhvcm46IFxcZjBhMTtcbiRmYS12YXItYnVsbHNleWU6IFxcZjE0MDtcbiRmYS12YXItYnVsbHNleWUtYXJyb3c6IFxcZjY0ODtcbiRmYS12YXItYnVsbHNleWUtcG9pbnRlcjogXFxmNjQ5O1xuJGZhLXZhci1idXJnZXItc29kYTogXFxmODU4O1xuJGZhLXZhci1idXJuOiBcXGY0NmE7XG4kZmEtdmFyLWJ1cm9tb2JlbGV4cGVydGU6IFxcZjM3ZjtcbiRmYS12YXItYnVycml0bzogXFxmN2VkO1xuJGZhLXZhci1idXM6IFxcZjIwNztcbiRmYS12YXItYnVzLWFsdDogXFxmNTVlO1xuJGZhLXZhci1idXMtc2Nob29sOiBcXGY1ZGQ7XG4kZmEtdmFyLWJ1c2luZXNzLXRpbWU6IFxcZjY0YTtcbiRmYS12YXItYnV5LW4tbGFyZ2U6IFxcZjhhNjtcbiRmYS12YXItYnV5c2VsbGFkczogXFxmMjBkO1xuJGZhLXZhci1jYWJpbmV0LWZpbGluZzogXFxmNjRiO1xuJGZhLXZhci1jYWN0dXM6IFxcZjhhNztcbiRmYS12YXItY2FsY3VsYXRvcjogXFxmMWVjO1xuJGZhLXZhci1jYWxjdWxhdG9yLWFsdDogXFxmNjRjO1xuJGZhLXZhci1jYWxlbmRhcjogXFxmMTMzO1xuJGZhLXZhci1jYWxlbmRhci1hbHQ6IFxcZjA3MztcbiRmYS12YXItY2FsZW5kYXItY2hlY2s6IFxcZjI3NDtcbiRmYS12YXItY2FsZW5kYXItZGF5OiBcXGY3ODM7XG4kZmEtdmFyLWNhbGVuZGFyLWVkaXQ6IFxcZjMzMztcbiRmYS12YXItY2FsZW5kYXItZXhjbGFtYXRpb246IFxcZjMzNDtcbiRmYS12YXItY2FsZW5kYXItbWludXM6IFxcZjI3MjtcbiRmYS12YXItY2FsZW5kYXItcGx1czogXFxmMjcxO1xuJGZhLXZhci1jYWxlbmRhci1zdGFyOiBcXGY3MzY7XG4kZmEtdmFyLWNhbGVuZGFyLXRpbWVzOiBcXGYyNzM7XG4kZmEtdmFyLWNhbGVuZGFyLXdlZWs6IFxcZjc4NDtcbiRmYS12YXItY2FtY29yZGVyOiBcXGY4YTg7XG4kZmEtdmFyLWNhbWVyYTogXFxmMDMwO1xuJGZhLXZhci1jYW1lcmEtYWx0OiBcXGYzMzI7XG4kZmEtdmFyLWNhbWVyYS1ob21lOiBcXGY4ZmU7XG4kZmEtdmFyLWNhbWVyYS1tb3ZpZTogXFxmOGE5O1xuJGZhLXZhci1jYW1lcmEtcG9sYXJvaWQ6IFxcZjhhYTtcbiRmYS12YXItY2FtZXJhLXJldHJvOiBcXGYwODM7XG4kZmEtdmFyLWNhbXBmaXJlOiBcXGY2YmE7XG4kZmEtdmFyLWNhbXBncm91bmQ6IFxcZjZiYjtcbiRmYS12YXItY2FuYWRpYW4tbWFwbGUtbGVhZjogXFxmNzg1O1xuJGZhLXZhci1jYW5kbGUtaG9sZGVyOiBcXGY2YmM7XG4kZmEtdmFyLWNhbmR5LWNhbmU6IFxcZjc4NjtcbiRmYS12YXItY2FuZHktY29ybjogXFxmNmJkO1xuJGZhLXZhci1jYW5uYWJpczogXFxmNTVmO1xuJGZhLXZhci1jYXBzdWxlczogXFxmNDZiO1xuJGZhLXZhci1jYXI6IFxcZjFiOTtcbiRmYS12YXItY2FyLWFsdDogXFxmNWRlO1xuJGZhLXZhci1jYXItYmF0dGVyeTogXFxmNWRmO1xuJGZhLXZhci1jYXItYnVpbGRpbmc6IFxcZjg1OTtcbiRmYS12YXItY2FyLWJ1bXA6IFxcZjVlMDtcbiRmYS12YXItY2FyLWJ1czogXFxmODVhO1xuJGZhLXZhci1jYXItY3Jhc2g6IFxcZjVlMTtcbiRmYS12YXItY2FyLWdhcmFnZTogXFxmNWUyO1xuJGZhLXZhci1jYXItbWVjaGFuaWM6IFxcZjVlMztcbiRmYS12YXItY2FyLXNpZGU6IFxcZjVlNDtcbiRmYS12YXItY2FyLXRpbHQ6IFxcZjVlNTtcbiRmYS12YXItY2FyLXdhc2g6IFxcZjVlNjtcbiRmYS12YXItY2FyYXZhbjogXFxmOGZmO1xuJGZhLXZhci1jYXJhdmFuLWFsdDogXFxlMDAwO1xuJGZhLXZhci1jYXJldC1jaXJjbGUtZG93bjogXFxmMzJkO1xuJGZhLXZhci1jYXJldC1jaXJjbGUtbGVmdDogXFxmMzJlO1xuJGZhLXZhci1jYXJldC1jaXJjbGUtcmlnaHQ6IFxcZjMzMDtcbiRmYS12YXItY2FyZXQtY2lyY2xlLXVwOiBcXGYzMzE7XG4kZmEtdmFyLWNhcmV0LWRvd246IFxcZjBkNztcbiRmYS12YXItY2FyZXQtbGVmdDogXFxmMGQ5O1xuJGZhLXZhci1jYXJldC1yaWdodDogXFxmMGRhO1xuJGZhLXZhci1jYXJldC1zcXVhcmUtZG93bjogXFxmMTUwO1xuJGZhLXZhci1jYXJldC1zcXVhcmUtbGVmdDogXFxmMTkxO1xuJGZhLXZhci1jYXJldC1zcXVhcmUtcmlnaHQ6IFxcZjE1MjtcbiRmYS12YXItY2FyZXQtc3F1YXJlLXVwOiBcXGYxNTE7XG4kZmEtdmFyLWNhcmV0LXVwOiBcXGYwZDg7XG4kZmEtdmFyLWNhcnJvdDogXFxmNzg3O1xuJGZhLXZhci1jYXJzOiBcXGY4NWI7XG4kZmEtdmFyLWNhcnQtYXJyb3ctZG93bjogXFxmMjE4O1xuJGZhLXZhci1jYXJ0LXBsdXM6IFxcZjIxNztcbiRmYS12YXItY2FzaC1yZWdpc3RlcjogXFxmNzg4O1xuJGZhLXZhci1jYXNzZXR0ZS10YXBlOiBcXGY4YWI7XG4kZmEtdmFyLWNhdDogXFxmNmJlO1xuJGZhLXZhci1jYXQtc3BhY2U6IFxcZTAwMTtcbiRmYS12YXItY2F1bGRyb246IFxcZjZiZjtcbiRmYS12YXItY2MtYW1hem9uLXBheTogXFxmNDJkO1xuJGZhLXZhci1jYy1hbWV4OiBcXGYxZjM7XG4kZmEtdmFyLWNjLWFwcGxlLXBheTogXFxmNDE2O1xuJGZhLXZhci1jYy1kaW5lcnMtY2x1YjogXFxmMjRjO1xuJGZhLXZhci1jYy1kaXNjb3ZlcjogXFxmMWYyO1xuJGZhLXZhci1jYy1qY2I6IFxcZjI0YjtcbiRmYS12YXItY2MtbWFzdGVyY2FyZDogXFxmMWYxO1xuJGZhLXZhci1jYy1wYXlwYWw6IFxcZjFmNDtcbiRmYS12YXItY2Mtc3RyaXBlOiBcXGYxZjU7XG4kZmEtdmFyLWNjLXZpc2E6IFxcZjFmMDtcbiRmYS12YXItY2N0djogXFxmOGFjO1xuJGZhLXZhci1jZW50ZXJjb2RlOiBcXGYzODA7XG4kZmEtdmFyLWNlbnRvczogXFxmNzg5O1xuJGZhLXZhci1jZXJ0aWZpY2F0ZTogXFxmMGEzO1xuJGZhLXZhci1jaGFpcjogXFxmNmMwO1xuJGZhLXZhci1jaGFpci1vZmZpY2U6IFxcZjZjMTtcbiRmYS12YXItY2hhbGtib2FyZDogXFxmNTFiO1xuJGZhLXZhci1jaGFsa2JvYXJkLXRlYWNoZXI6IFxcZjUxYztcbiRmYS12YXItY2hhcmdpbmctc3RhdGlvbjogXFxmNWU3O1xuJGZhLXZhci1jaGFydC1hcmVhOiBcXGYxZmU7XG4kZmEtdmFyLWNoYXJ0LWJhcjogXFxmMDgwO1xuJGZhLXZhci1jaGFydC1saW5lOiBcXGYyMDE7XG4kZmEtdmFyLWNoYXJ0LWxpbmUtZG93bjogXFxmNjRkO1xuJGZhLXZhci1jaGFydC1uZXR3b3JrOiBcXGY3OGE7XG4kZmEtdmFyLWNoYXJ0LXBpZTogXFxmMjAwO1xuJGZhLXZhci1jaGFydC1waWUtYWx0OiBcXGY2NGU7XG4kZmEtdmFyLWNoYXJ0LXNjYXR0ZXI6IFxcZjdlZTtcbiRmYS12YXItY2hlY2s6IFxcZjAwYztcbiRmYS12YXItY2hlY2stY2lyY2xlOiBcXGYwNTg7XG4kZmEtdmFyLWNoZWNrLWRvdWJsZTogXFxmNTYwO1xuJGZhLXZhci1jaGVjay1zcXVhcmU6IFxcZjE0YTtcbiRmYS12YXItY2hlZXNlOiBcXGY3ZWY7XG4kZmEtdmFyLWNoZWVzZS1zd2lzczogXFxmN2YwO1xuJGZhLXZhci1jaGVlc2VidXJnZXI6IFxcZjdmMTtcbiRmYS12YXItY2hlc3M6IFxcZjQzOTtcbiRmYS12YXItY2hlc3MtYmlzaG9wOiBcXGY0M2E7XG4kZmEtdmFyLWNoZXNzLWJpc2hvcC1hbHQ6IFxcZjQzYjtcbiRmYS12YXItY2hlc3MtYm9hcmQ6IFxcZjQzYztcbiRmYS12YXItY2hlc3MtY2xvY2s6IFxcZjQzZDtcbiRmYS12YXItY2hlc3MtY2xvY2stYWx0OiBcXGY0M2U7XG4kZmEtdmFyLWNoZXNzLWtpbmc6IFxcZjQzZjtcbiRmYS12YXItY2hlc3Mta2luZy1hbHQ6IFxcZjQ0MDtcbiRmYS12YXItY2hlc3Mta25pZ2h0OiBcXGY0NDE7XG4kZmEtdmFyLWNoZXNzLWtuaWdodC1hbHQ6IFxcZjQ0MjtcbiRmYS12YXItY2hlc3MtcGF3bjogXFxmNDQzO1xuJGZhLXZhci1jaGVzcy1wYXduLWFsdDogXFxmNDQ0O1xuJGZhLXZhci1jaGVzcy1xdWVlbjogXFxmNDQ1O1xuJGZhLXZhci1jaGVzcy1xdWVlbi1hbHQ6IFxcZjQ0NjtcbiRmYS12YXItY2hlc3Mtcm9vazogXFxmNDQ3O1xuJGZhLXZhci1jaGVzcy1yb29rLWFsdDogXFxmNDQ4O1xuJGZhLXZhci1jaGV2cm9uLWNpcmNsZS1kb3duOiBcXGYxM2E7XG4kZmEtdmFyLWNoZXZyb24tY2lyY2xlLWxlZnQ6IFxcZjEzNztcbiRmYS12YXItY2hldnJvbi1jaXJjbGUtcmlnaHQ6IFxcZjEzODtcbiRmYS12YXItY2hldnJvbi1jaXJjbGUtdXA6IFxcZjEzOTtcbiRmYS12YXItY2hldnJvbi1kb3VibGUtZG93bjogXFxmMzIyO1xuJGZhLXZhci1jaGV2cm9uLWRvdWJsZS1sZWZ0OiBcXGYzMjM7XG4kZmEtdmFyLWNoZXZyb24tZG91YmxlLXJpZ2h0OiBcXGYzMjQ7XG4kZmEtdmFyLWNoZXZyb24tZG91YmxlLXVwOiBcXGYzMjU7XG4kZmEtdmFyLWNoZXZyb24tZG93bjogXFxmMDc4O1xuJGZhLXZhci1jaGV2cm9uLWxlZnQ6IFxcZjA1MztcbiRmYS12YXItY2hldnJvbi1yaWdodDogXFxmMDU0O1xuJGZhLXZhci1jaGV2cm9uLXNxdWFyZS1kb3duOiBcXGYzMjk7XG4kZmEtdmFyLWNoZXZyb24tc3F1YXJlLWxlZnQ6IFxcZjMyYTtcbiRmYS12YXItY2hldnJvbi1zcXVhcmUtcmlnaHQ6IFxcZjMyYjtcbiRmYS12YXItY2hldnJvbi1zcXVhcmUtdXA6IFxcZjMyYztcbiRmYS12YXItY2hldnJvbi11cDogXFxmMDc3O1xuJGZhLXZhci1jaGlsZDogXFxmMWFlO1xuJGZhLXZhci1jaGltbmV5OiBcXGY3OGI7XG4kZmEtdmFyLWNocm9tZTogXFxmMjY4O1xuJGZhLXZhci1jaHJvbWVjYXN0OiBcXGY4Mzg7XG4kZmEtdmFyLWNodXJjaDogXFxmNTFkO1xuJGZhLXZhci1jaXJjbGU6IFxcZjExMTtcbiRmYS12YXItY2lyY2xlLW5vdGNoOiBcXGYxY2U7XG4kZmEtdmFyLWNpdHk6IFxcZjY0ZjtcbiRmYS12YXItY2xhcmluZXQ6IFxcZjhhZDtcbiRmYS12YXItY2xhdy1tYXJrczogXFxmNmMyO1xuJGZhLXZhci1jbGluaWMtbWVkaWNhbDogXFxmN2YyO1xuJGZhLXZhci1jbGlwYm9hcmQ6IFxcZjMyODtcbiRmYS12YXItY2xpcGJvYXJkLWNoZWNrOiBcXGY0NmM7XG4kZmEtdmFyLWNsaXBib2FyZC1saXN0OiBcXGY0NmQ7XG4kZmEtdmFyLWNsaXBib2FyZC1saXN0LWNoZWNrOiBcXGY3Mzc7XG4kZmEtdmFyLWNsaXBib2FyZC1wcmVzY3JpcHRpb246IFxcZjVlODtcbiRmYS12YXItY2xpcGJvYXJkLXVzZXI6IFxcZjdmMztcbiRmYS12YXItY2xvY2s6IFxcZjAxNztcbiRmYS12YXItY2xvbmU6IFxcZjI0ZDtcbiRmYS12YXItY2xvc2VkLWNhcHRpb25pbmc6IFxcZjIwYTtcbiRmYS12YXItY2xvdWQ6IFxcZjBjMjtcbiRmYS12YXItY2xvdWQtZG93bmxvYWQ6IFxcZjBlZDtcbiRmYS12YXItY2xvdWQtZG93bmxvYWQtYWx0OiBcXGYzODE7XG4kZmEtdmFyLWNsb3VkLWRyaXp6bGU6IFxcZjczODtcbiRmYS12YXItY2xvdWQtaGFpbDogXFxmNzM5O1xuJGZhLXZhci1jbG91ZC1oYWlsLW1peGVkOiBcXGY3M2E7XG4kZmEtdmFyLWNsb3VkLW1lYXRiYWxsOiBcXGY3M2I7XG4kZmEtdmFyLWNsb3VkLW1vb246IFxcZjZjMztcbiRmYS12YXItY2xvdWQtbW9vbi1yYWluOiBcXGY3M2M7XG4kZmEtdmFyLWNsb3VkLW11c2ljOiBcXGY4YWU7XG4kZmEtdmFyLWNsb3VkLXJhaW46IFxcZjczZDtcbiRmYS12YXItY2xvdWQtcmFpbmJvdzogXFxmNzNlO1xuJGZhLXZhci1jbG91ZC1zaG93ZXJzOiBcXGY3M2Y7XG4kZmEtdmFyLWNsb3VkLXNob3dlcnMtaGVhdnk6IFxcZjc0MDtcbiRmYS12YXItY2xvdWQtc2xlZXQ6IFxcZjc0MTtcbiRmYS12YXItY2xvdWQtc25vdzogXFxmNzQyO1xuJGZhLXZhci1jbG91ZC1zdW46IFxcZjZjNDtcbiRmYS12YXItY2xvdWQtc3VuLXJhaW46IFxcZjc0MztcbiRmYS12YXItY2xvdWQtdXBsb2FkOiBcXGYwZWU7XG4kZmEtdmFyLWNsb3VkLXVwbG9hZC1hbHQ6IFxcZjM4MjtcbiRmYS12YXItY2xvdWRmbGFyZTogXFxlMDdkO1xuJGZhLXZhci1jbG91ZHM6IFxcZjc0NDtcbiRmYS12YXItY2xvdWRzLW1vb246IFxcZjc0NTtcbiRmYS12YXItY2xvdWRzLXN1bjogXFxmNzQ2O1xuJGZhLXZhci1jbG91ZHNjYWxlOiBcXGYzODM7XG4kZmEtdmFyLWNsb3Vkc21pdGg6IFxcZjM4NDtcbiRmYS12YXItY2xvdWR2ZXJzaWZ5OiBcXGYzODU7XG4kZmEtdmFyLWNsdWI6IFxcZjMyNztcbiRmYS12YXItY29ja3RhaWw6IFxcZjU2MTtcbiRmYS12YXItY29kZTogXFxmMTIxO1xuJGZhLXZhci1jb2RlLWJyYW5jaDogXFxmMTI2O1xuJGZhLXZhci1jb2RlLWNvbW1pdDogXFxmMzg2O1xuJGZhLXZhci1jb2RlLW1lcmdlOiBcXGYzODc7XG4kZmEtdmFyLWNvZGVwZW46IFxcZjFjYjtcbiRmYS12YXItY29kaWVwaWU6IFxcZjI4NDtcbiRmYS12YXItY29mZmVlOiBcXGYwZjQ7XG4kZmEtdmFyLWNvZmZlZS1wb3Q6IFxcZTAwMjtcbiRmYS12YXItY29mZmVlLXRvZ286IFxcZjZjNTtcbiRmYS12YXItY29mZmluOiBcXGY2YzY7XG4kZmEtdmFyLWNvZmZpbi1jcm9zczogXFxlMDUxO1xuJGZhLXZhci1jb2c6IFxcZjAxMztcbiRmYS12YXItY29nczogXFxmMDg1O1xuJGZhLXZhci1jb2luOiBcXGY4NWM7XG4kZmEtdmFyLWNvaW5zOiBcXGY1MWU7XG4kZmEtdmFyLWNvbHVtbnM6IFxcZjBkYjtcbiRmYS12YXItY29tZXQ6IFxcZTAwMztcbiRmYS12YXItY29tbWVudDogXFxmMDc1O1xuJGZhLXZhci1jb21tZW50LWFsdDogXFxmMjdhO1xuJGZhLXZhci1jb21tZW50LWFsdC1jaGVjazogXFxmNGEyO1xuJGZhLXZhci1jb21tZW50LWFsdC1kb2xsYXI6IFxcZjY1MDtcbiRmYS12YXItY29tbWVudC1hbHQtZG90czogXFxmNGEzO1xuJGZhLXZhci1jb21tZW50LWFsdC1lZGl0OiBcXGY0YTQ7XG4kZmEtdmFyLWNvbW1lbnQtYWx0LWV4Y2xhbWF0aW9uOiBcXGY0YTU7XG4kZmEtdmFyLWNvbW1lbnQtYWx0LWxpbmVzOiBcXGY0YTY7XG4kZmEtdmFyLWNvbW1lbnQtYWx0LW1lZGljYWw6IFxcZjdmNDtcbiRmYS12YXItY29tbWVudC1hbHQtbWludXM6IFxcZjRhNztcbiRmYS12YXItY29tbWVudC1hbHQtbXVzaWM6IFxcZjhhZjtcbiRmYS12YXItY29tbWVudC1hbHQtcGx1czogXFxmNGE4O1xuJGZhLXZhci1jb21tZW50LWFsdC1zbGFzaDogXFxmNGE5O1xuJGZhLXZhci1jb21tZW50LWFsdC1zbWlsZTogXFxmNGFhO1xuJGZhLXZhci1jb21tZW50LWFsdC10aW1lczogXFxmNGFiO1xuJGZhLXZhci1jb21tZW50LWNoZWNrOiBcXGY0YWM7XG4kZmEtdmFyLWNvbW1lbnQtZG9sbGFyOiBcXGY2NTE7XG4kZmEtdmFyLWNvbW1lbnQtZG90czogXFxmNGFkO1xuJGZhLXZhci1jb21tZW50LWVkaXQ6IFxcZjRhZTtcbiRmYS12YXItY29tbWVudC1leGNsYW1hdGlvbjogXFxmNGFmO1xuJGZhLXZhci1jb21tZW50LWxpbmVzOiBcXGY0YjA7XG4kZmEtdmFyLWNvbW1lbnQtbWVkaWNhbDogXFxmN2Y1O1xuJGZhLXZhci1jb21tZW50LW1pbnVzOiBcXGY0YjE7XG4kZmEtdmFyLWNvbW1lbnQtbXVzaWM6IFxcZjhiMDtcbiRmYS12YXItY29tbWVudC1wbHVzOiBcXGY0YjI7XG4kZmEtdmFyLWNvbW1lbnQtc2xhc2g6IFxcZjRiMztcbiRmYS12YXItY29tbWVudC1zbWlsZTogXFxmNGI0O1xuJGZhLXZhci1jb21tZW50LXRpbWVzOiBcXGY0YjU7XG4kZmEtdmFyLWNvbW1lbnRzOiBcXGYwODY7XG4kZmEtdmFyLWNvbW1lbnRzLWFsdDogXFxmNGI2O1xuJGZhLXZhci1jb21tZW50cy1hbHQtZG9sbGFyOiBcXGY2NTI7XG4kZmEtdmFyLWNvbW1lbnRzLWRvbGxhcjogXFxmNjUzO1xuJGZhLXZhci1jb21wYWN0LWRpc2M6IFxcZjUxZjtcbiRmYS12YXItY29tcGFzczogXFxmMTRlO1xuJGZhLXZhci1jb21wYXNzLXNsYXNoOiBcXGY1ZTk7XG4kZmEtdmFyLWNvbXByZXNzOiBcXGYwNjY7XG4kZmEtdmFyLWNvbXByZXNzLWFsdDogXFxmNDIyO1xuJGZhLXZhci1jb21wcmVzcy1hcnJvd3MtYWx0OiBcXGY3OGM7XG4kZmEtdmFyLWNvbXByZXNzLXdpZGU6IFxcZjMyNjtcbiRmYS12YXItY29tcHV0ZXItY2xhc3NpYzogXFxmOGIxO1xuJGZhLXZhci1jb21wdXRlci1zcGVha2VyOiBcXGY4YjI7XG4kZmEtdmFyLWNvbmNpZXJnZS1iZWxsOiBcXGY1NjI7XG4kZmEtdmFyLWNvbmZsdWVuY2U6IFxcZjc4ZDtcbiRmYS12YXItY29ubmVjdGRldmVsb3A6IFxcZjIwZTtcbiRmYS12YXItY29uc3RydWN0aW9uOiBcXGY4NWQ7XG4kZmEtdmFyLWNvbnRhaW5lci1zdG9yYWdlOiBcXGY0Yjc7XG4kZmEtdmFyLWNvbnRhbzogXFxmMjZkO1xuJGZhLXZhci1jb252ZXlvci1iZWx0OiBcXGY0NmU7XG4kZmEtdmFyLWNvbnZleW9yLWJlbHQtYWx0OiBcXGY0NmY7XG4kZmEtdmFyLWNvb2tpZTogXFxmNTYzO1xuJGZhLXZhci1jb29raWUtYml0ZTogXFxmNTY0O1xuJGZhLXZhci1jb3B5OiBcXGYwYzU7XG4kZmEtdmFyLWNvcHlyaWdodDogXFxmMWY5O1xuJGZhLXZhci1jb3JuOiBcXGY2Yzc7XG4kZmEtdmFyLWNvdHRvbi1idXJlYXU6IFxcZjg5ZTtcbiRmYS12YXItY291Y2g6IFxcZjRiODtcbiRmYS12YXItY293OiBcXGY2Yzg7XG4kZmEtdmFyLWNvd2JlbGw6IFxcZjhiMztcbiRmYS12YXItY293YmVsbC1tb3JlOiBcXGY4YjQ7XG4kZmEtdmFyLWNwYW5lbDogXFxmMzg4O1xuJGZhLXZhci1jcmVhdGl2ZS1jb21tb25zOiBcXGYyNWU7XG4kZmEtdmFyLWNyZWF0aXZlLWNvbW1vbnMtYnk6IFxcZjRlNztcbiRmYS12YXItY3JlYXRpdmUtY29tbW9ucy1uYzogXFxmNGU4O1xuJGZhLXZhci1jcmVhdGl2ZS1jb21tb25zLW5jLWV1OiBcXGY0ZTk7XG4kZmEtdmFyLWNyZWF0aXZlLWNvbW1vbnMtbmMtanA6IFxcZjRlYTtcbiRmYS12YXItY3JlYXRpdmUtY29tbW9ucy1uZDogXFxmNGViO1xuJGZhLXZhci1jcmVhdGl2ZS1jb21tb25zLXBkOiBcXGY0ZWM7XG4kZmEtdmFyLWNyZWF0aXZlLWNvbW1vbnMtcGQtYWx0OiBcXGY0ZWQ7XG4kZmEtdmFyLWNyZWF0aXZlLWNvbW1vbnMtcmVtaXg6IFxcZjRlZTtcbiRmYS12YXItY3JlYXRpdmUtY29tbW9ucy1zYTogXFxmNGVmO1xuJGZhLXZhci1jcmVhdGl2ZS1jb21tb25zLXNhbXBsaW5nOiBcXGY0ZjA7XG4kZmEtdmFyLWNyZWF0aXZlLWNvbW1vbnMtc2FtcGxpbmctcGx1czogXFxmNGYxO1xuJGZhLXZhci1jcmVhdGl2ZS1jb21tb25zLXNoYXJlOiBcXGY0ZjI7XG4kZmEtdmFyLWNyZWF0aXZlLWNvbW1vbnMtemVybzogXFxmNGYzO1xuJGZhLXZhci1jcmVkaXQtY2FyZDogXFxmMDlkO1xuJGZhLXZhci1jcmVkaXQtY2FyZC1ibGFuazogXFxmMzg5O1xuJGZhLXZhci1jcmVkaXQtY2FyZC1mcm9udDogXFxmMzhhO1xuJGZhLXZhci1jcmlja2V0OiBcXGY0NDk7XG4kZmEtdmFyLWNyaXRpY2FsLXJvbGU6IFxcZjZjOTtcbiRmYS12YXItY3JvaXNzYW50OiBcXGY3ZjY7XG4kZmEtdmFyLWNyb3A6IFxcZjEyNTtcbiRmYS12YXItY3JvcC1hbHQ6IFxcZjU2NTtcbiRmYS12YXItY3Jvc3M6IFxcZjY1NDtcbiRmYS12YXItY3Jvc3NoYWlyczogXFxmMDViO1xuJGZhLXZhci1jcm93OiBcXGY1MjA7XG4kZmEtdmFyLWNyb3duOiBcXGY1MjE7XG4kZmEtdmFyLWNydXRjaDogXFxmN2Y3O1xuJGZhLXZhci1jcnV0Y2hlczogXFxmN2Y4O1xuJGZhLXZhci1jc3MzOiBcXGYxM2M7XG4kZmEtdmFyLWNzczMtYWx0OiBcXGYzOGI7XG4kZmEtdmFyLWN1YmU6IFxcZjFiMjtcbiRmYS12YXItY3ViZXM6IFxcZjFiMztcbiRmYS12YXItY3VybGluZzogXFxmNDRhO1xuJGZhLXZhci1jdXQ6IFxcZjBjNDtcbiRmYS12YXItY3V0dGxlZmlzaDogXFxmMzhjO1xuJGZhLXZhci1kLWFuZC1kOiBcXGYzOGQ7XG4kZmEtdmFyLWQtYW5kLWQtYmV5b25kOiBcXGY2Y2E7XG4kZmEtdmFyLWRhZ2dlcjogXFxmNmNiO1xuJGZhLXZhci1kYWlseW1vdGlvbjogXFxlMDUyO1xuJGZhLXZhci1kYXNoY3ViZTogXFxmMjEwO1xuJGZhLXZhci1kYXRhYmFzZTogXFxmMWMwO1xuJGZhLXZhci1kZWFmOiBcXGYyYTQ7XG4kZmEtdmFyLWRlYnVnOiBcXGY3Zjk7XG4kZmEtdmFyLWRlZXI6IFxcZjc4ZTtcbiRmYS12YXItZGVlci1ydWRvbHBoOiBcXGY3OGY7XG4kZmEtdmFyLWRlZXplcjogXFxlMDc3O1xuJGZhLXZhci1kZWxpY2lvdXM6IFxcZjFhNTtcbiRmYS12YXItZGVtb2NyYXQ6IFxcZjc0NztcbiRmYS12YXItZGVwbG95ZG9nOiBcXGYzOGU7XG4kZmEtdmFyLWRlc2twcm86IFxcZjM4ZjtcbiRmYS12YXItZGVza3RvcDogXFxmMTA4O1xuJGZhLXZhci1kZXNrdG9wLWFsdDogXFxmMzkwO1xuJGZhLXZhci1kZXY6IFxcZjZjYztcbiRmYS12YXItZGV2aWFudGFydDogXFxmMWJkO1xuJGZhLXZhci1kZXdwb2ludDogXFxmNzQ4O1xuJGZhLXZhci1kaGFybWFjaGFrcmE6IFxcZjY1NTtcbiRmYS12YXItZGhsOiBcXGY3OTA7XG4kZmEtdmFyLWRpYWdub3NlczogXFxmNDcwO1xuJGZhLXZhci1kaWFtb25kOiBcXGYyMTk7XG4kZmEtdmFyLWRpYXNwb3JhOiBcXGY3OTE7XG4kZmEtdmFyLWRpY2U6IFxcZjUyMjtcbiRmYS12YXItZGljZS1kMTA6IFxcZjZjZDtcbiRmYS12YXItZGljZS1kMTI6IFxcZjZjZTtcbiRmYS12YXItZGljZS1kMjA6IFxcZjZjZjtcbiRmYS12YXItZGljZS1kNDogXFxmNmQwO1xuJGZhLXZhci1kaWNlLWQ2OiBcXGY2ZDE7XG4kZmEtdmFyLWRpY2UtZDg6IFxcZjZkMjtcbiRmYS12YXItZGljZS1maXZlOiBcXGY1MjM7XG4kZmEtdmFyLWRpY2UtZm91cjogXFxmNTI0O1xuJGZhLXZhci1kaWNlLW9uZTogXFxmNTI1O1xuJGZhLXZhci1kaWNlLXNpeDogXFxmNTI2O1xuJGZhLXZhci1kaWNlLXRocmVlOiBcXGY1Mjc7XG4kZmEtdmFyLWRpY2UtdHdvOiBcXGY1Mjg7XG4kZmEtdmFyLWRpZ2c6IFxcZjFhNjtcbiRmYS12YXItZGlnZ2luZzogXFxmODVlO1xuJGZhLXZhci1kaWdpdGFsLW9jZWFuOiBcXGYzOTE7XG4kZmEtdmFyLWRpZ2l0YWwtdGFjaG9ncmFwaDogXFxmNTY2O1xuJGZhLXZhci1kaXBsb21hOiBcXGY1ZWE7XG4kZmEtdmFyLWRpcmVjdGlvbnM6IFxcZjVlYjtcbiRmYS12YXItZGlzYy1kcml2ZTogXFxmOGI1O1xuJGZhLXZhci1kaXNjb3JkOiBcXGYzOTI7XG4kZmEtdmFyLWRpc2NvdXJzZTogXFxmMzkzO1xuJGZhLXZhci1kaXNlYXNlOiBcXGY3ZmE7XG4kZmEtdmFyLWRpdmlkZTogXFxmNTI5O1xuJGZhLXZhci1kaXp6eTogXFxmNTY3O1xuJGZhLXZhci1kbmE6IFxcZjQ3MTtcbiRmYS12YXItZG8tbm90LWVudGVyOiBcXGY1ZWM7XG4kZmEtdmFyLWRvY2h1YjogXFxmMzk0O1xuJGZhLXZhci1kb2NrZXI6IFxcZjM5NTtcbiRmYS12YXItZG9nOiBcXGY2ZDM7XG4kZmEtdmFyLWRvZy1sZWFzaGVkOiBcXGY2ZDQ7XG4kZmEtdmFyLWRvbGxhci1zaWduOiBcXGYxNTU7XG4kZmEtdmFyLWRvbGx5OiBcXGY0NzI7XG4kZmEtdmFyLWRvbGx5LWVtcHR5OiBcXGY0NzM7XG4kZmEtdmFyLWRvbGx5LWZsYXRiZWQ6IFxcZjQ3NDtcbiRmYS12YXItZG9sbHktZmxhdGJlZC1hbHQ6IFxcZjQ3NTtcbiRmYS12YXItZG9sbHktZmxhdGJlZC1lbXB0eTogXFxmNDc2O1xuJGZhLXZhci1kb25hdGU6IFxcZjRiOTtcbiRmYS12YXItZG9vci1jbG9zZWQ6IFxcZjUyYTtcbiRmYS12YXItZG9vci1vcGVuOiBcXGY1MmI7XG4kZmEtdmFyLWRvdC1jaXJjbGU6IFxcZjE5MjtcbiRmYS12YXItZG92ZTogXFxmNGJhO1xuJGZhLXZhci1kb3dubG9hZDogXFxmMDE5O1xuJGZhLXZhci1kcmFmdDJkaWdpdGFsOiBcXGYzOTY7XG4kZmEtdmFyLWRyYWZ0aW5nLWNvbXBhc3M6IFxcZjU2ODtcbiRmYS12YXItZHJhZ29uOiBcXGY2ZDU7XG4kZmEtdmFyLWRyYXctY2lyY2xlOiBcXGY1ZWQ7XG4kZmEtdmFyLWRyYXctcG9seWdvbjogXFxmNWVlO1xuJGZhLXZhci1kcmF3LXNxdWFyZTogXFxmNWVmO1xuJGZhLXZhci1kcmVpZGVsOiBcXGY3OTI7XG4kZmEtdmFyLWRyaWJiYmxlOiBcXGYxN2Q7XG4kZmEtdmFyLWRyaWJiYmxlLXNxdWFyZTogXFxmMzk3O1xuJGZhLXZhci1kcm9uZTogXFxmODVmO1xuJGZhLXZhci1kcm9uZS1hbHQ6IFxcZjg2MDtcbiRmYS12YXItZHJvcGJveDogXFxmMTZiO1xuJGZhLXZhci1kcnVtOiBcXGY1Njk7XG4kZmEtdmFyLWRydW0tc3RlZWxwYW46IFxcZjU2YTtcbiRmYS12YXItZHJ1bXN0aWNrOiBcXGY2ZDY7XG4kZmEtdmFyLWRydW1zdGljay1iaXRlOiBcXGY2ZDc7XG4kZmEtdmFyLWRydXBhbDogXFxmMWE5O1xuJGZhLXZhci1kcnllcjogXFxmODYxO1xuJGZhLXZhci1kcnllci1hbHQ6IFxcZjg2MjtcbiRmYS12YXItZHVjazogXFxmNmQ4O1xuJGZhLXZhci1kdW1iYmVsbDogXFxmNDRiO1xuJGZhLXZhci1kdW1wc3RlcjogXFxmNzkzO1xuJGZhLXZhci1kdW1wc3Rlci1maXJlOiBcXGY3OTQ7XG4kZmEtdmFyLWR1bmdlb246IFxcZjZkOTtcbiRmYS12YXItZHlhbG9nOiBcXGYzOTk7XG4kZmEtdmFyLWVhcjogXFxmNWYwO1xuJGZhLXZhci1lYXItbXVmZnM6IFxcZjc5NTtcbiRmYS12YXItZWFybHliaXJkczogXFxmMzlhO1xuJGZhLXZhci1lYmF5OiBcXGY0ZjQ7XG4kZmEtdmFyLWVjbGlwc2U6IFxcZjc0OTtcbiRmYS12YXItZWNsaXBzZS1hbHQ6IFxcZjc0YTtcbiRmYS12YXItZWRnZTogXFxmMjgyO1xuJGZhLXZhci1lZGdlLWxlZ2FjeTogXFxlMDc4O1xuJGZhLXZhci1lZGl0OiBcXGYwNDQ7XG4kZmEtdmFyLWVnZzogXFxmN2ZiO1xuJGZhLXZhci1lZ2ctZnJpZWQ6IFxcZjdmYztcbiRmYS12YXItZWplY3Q6IFxcZjA1MjtcbiRmYS12YXItZWxlbWVudG9yOiBcXGY0MzA7XG4kZmEtdmFyLWVsZXBoYW50OiBcXGY2ZGE7XG4kZmEtdmFyLWVsbGlwc2lzLWg6IFxcZjE0MTtcbiRmYS12YXItZWxsaXBzaXMtaC1hbHQ6IFxcZjM5YjtcbiRmYS12YXItZWxsaXBzaXMtdjogXFxmMTQyO1xuJGZhLXZhci1lbGxpcHNpcy12LWFsdDogXFxmMzljO1xuJGZhLXZhci1lbGxvOiBcXGY1ZjE7XG4kZmEtdmFyLWVtYmVyOiBcXGY0MjM7XG4kZmEtdmFyLWVtcGlyZTogXFxmMWQxO1xuJGZhLXZhci1lbXB0eS1zZXQ6IFxcZjY1NjtcbiRmYS12YXItZW5naW5lLXdhcm5pbmc6IFxcZjVmMjtcbiRmYS12YXItZW52ZWxvcGU6IFxcZjBlMDtcbiRmYS12YXItZW52ZWxvcGUtb3BlbjogXFxmMmI2O1xuJGZhLXZhci1lbnZlbG9wZS1vcGVuLWRvbGxhcjogXFxmNjU3O1xuJGZhLXZhci1lbnZlbG9wZS1vcGVuLXRleHQ6IFxcZjY1ODtcbiRmYS12YXItZW52ZWxvcGUtc3F1YXJlOiBcXGYxOTk7XG4kZmEtdmFyLWVudmlyYTogXFxmMjk5O1xuJGZhLXZhci1lcXVhbHM6IFxcZjUyYztcbiRmYS12YXItZXJhc2VyOiBcXGYxMmQ7XG4kZmEtdmFyLWVybGFuZzogXFxmMzlkO1xuJGZhLXZhci1ldGhlcmV1bTogXFxmNDJlO1xuJGZhLXZhci1ldGhlcm5ldDogXFxmNzk2O1xuJGZhLXZhci1ldHN5OiBcXGYyZDc7XG4kZmEtdmFyLWV1cm8tc2lnbjogXFxmMTUzO1xuJGZhLXZhci1ldmVybm90ZTogXFxmODM5O1xuJGZhLXZhci1leGNoYW5nZTogXFxmMGVjO1xuJGZhLXZhci1leGNoYW5nZS1hbHQ6IFxcZjM2MjtcbiRmYS12YXItZXhjbGFtYXRpb246IFxcZjEyYTtcbiRmYS12YXItZXhjbGFtYXRpb24tY2lyY2xlOiBcXGYwNmE7XG4kZmEtdmFyLWV4Y2xhbWF0aW9uLXNxdWFyZTogXFxmMzIxO1xuJGZhLXZhci1leGNsYW1hdGlvbi10cmlhbmdsZTogXFxmMDcxO1xuJGZhLXZhci1leHBhbmQ6IFxcZjA2NTtcbiRmYS12YXItZXhwYW5kLWFsdDogXFxmNDI0O1xuJGZhLXZhci1leHBhbmQtYXJyb3dzOiBcXGYzMWQ7XG4kZmEtdmFyLWV4cGFuZC1hcnJvd3MtYWx0OiBcXGYzMWU7XG4kZmEtdmFyLWV4cGFuZC13aWRlOiBcXGYzMjA7XG4kZmEtdmFyLWV4cGVkaXRlZHNzbDogXFxmMjNlO1xuJGZhLXZhci1leHRlcm5hbC1saW5rOiBcXGYwOGU7XG4kZmEtdmFyLWV4dGVybmFsLWxpbmstYWx0OiBcXGYzNWQ7XG4kZmEtdmFyLWV4dGVybmFsLWxpbmstc3F1YXJlOiBcXGYxNGM7XG4kZmEtdmFyLWV4dGVybmFsLWxpbmstc3F1YXJlLWFsdDogXFxmMzYwO1xuJGZhLXZhci1leWU6IFxcZjA2ZTtcbiRmYS12YXItZXllLWRyb3BwZXI6IFxcZjFmYjtcbiRmYS12YXItZXllLWV2aWw6IFxcZjZkYjtcbiRmYS12YXItZXllLXNsYXNoOiBcXGYwNzA7XG4kZmEtdmFyLWZhY2Vib29rOiBcXGYwOWE7XG4kZmEtdmFyLWZhY2Vib29rLWY6IFxcZjM5ZTtcbiRmYS12YXItZmFjZWJvb2stbWVzc2VuZ2VyOiBcXGYzOWY7XG4kZmEtdmFyLWZhY2Vib29rLXNxdWFyZTogXFxmMDgyO1xuJGZhLXZhci1mYW46IFxcZjg2MztcbiRmYS12YXItZmFuLXRhYmxlOiBcXGUwMDQ7XG4kZmEtdmFyLWZhbnRhc3ktZmxpZ2h0LWdhbWVzOiBcXGY2ZGM7XG4kZmEtdmFyLWZhcm06IFxcZjg2NDtcbiRmYS12YXItZmFzdC1iYWNrd2FyZDogXFxmMDQ5O1xuJGZhLXZhci1mYXN0LWZvcndhcmQ6IFxcZjA1MDtcbiRmYS12YXItZmF1Y2V0OiBcXGUwMDU7XG4kZmEtdmFyLWZhdWNldC1kcmlwOiBcXGUwMDY7XG4kZmEtdmFyLWZheDogXFxmMWFjO1xuJGZhLXZhci1mZWF0aGVyOiBcXGY1MmQ7XG4kZmEtdmFyLWZlYXRoZXItYWx0OiBcXGY1NmI7XG4kZmEtdmFyLWZlZGV4OiBcXGY3OTc7XG4kZmEtdmFyLWZlZG9yYTogXFxmNzk4O1xuJGZhLXZhci1mZW1hbGU6IFxcZjE4MjtcbiRmYS12YXItZmllbGQtaG9ja2V5OiBcXGY0NGM7XG4kZmEtdmFyLWZpZ2h0ZXItamV0OiBcXGYwZmI7XG4kZmEtdmFyLWZpZ21hOiBcXGY3OTk7XG4kZmEtdmFyLWZpbGU6IFxcZjE1YjtcbiRmYS12YXItZmlsZS1hbHQ6IFxcZjE1YztcbiRmYS12YXItZmlsZS1hcmNoaXZlOiBcXGYxYzY7XG4kZmEtdmFyLWZpbGUtYXVkaW86IFxcZjFjNztcbiRmYS12YXItZmlsZS1jZXJ0aWZpY2F0ZTogXFxmNWYzO1xuJGZhLXZhci1maWxlLWNoYXJ0LWxpbmU6IFxcZjY1OTtcbiRmYS12YXItZmlsZS1jaGFydC1waWU6IFxcZjY1YTtcbiRmYS12YXItZmlsZS1jaGVjazogXFxmMzE2O1xuJGZhLXZhci1maWxlLWNvZGU6IFxcZjFjOTtcbiRmYS12YXItZmlsZS1jb250cmFjdDogXFxmNTZjO1xuJGZhLXZhci1maWxlLWNzdjogXFxmNmRkO1xuJGZhLXZhci1maWxlLWRvd25sb2FkOiBcXGY1NmQ7XG4kZmEtdmFyLWZpbGUtZWRpdDogXFxmMzFjO1xuJGZhLXZhci1maWxlLWV4Y2VsOiBcXGYxYzM7XG4kZmEtdmFyLWZpbGUtZXhjbGFtYXRpb246IFxcZjMxYTtcbiRmYS12YXItZmlsZS1leHBvcnQ6IFxcZjU2ZTtcbiRmYS12YXItZmlsZS1pbWFnZTogXFxmMWM1O1xuJGZhLXZhci1maWxlLWltcG9ydDogXFxmNTZmO1xuJGZhLXZhci1maWxlLWludm9pY2U6IFxcZjU3MDtcbiRmYS12YXItZmlsZS1pbnZvaWNlLWRvbGxhcjogXFxmNTcxO1xuJGZhLXZhci1maWxlLW1lZGljYWw6IFxcZjQ3NztcbiRmYS12YXItZmlsZS1tZWRpY2FsLWFsdDogXFxmNDc4O1xuJGZhLXZhci1maWxlLW1pbnVzOiBcXGYzMTg7XG4kZmEtdmFyLWZpbGUtbXVzaWM6IFxcZjhiNjtcbiRmYS12YXItZmlsZS1wZGY6IFxcZjFjMTtcbiRmYS12YXItZmlsZS1wbHVzOiBcXGYzMTk7XG4kZmEtdmFyLWZpbGUtcG93ZXJwb2ludDogXFxmMWM0O1xuJGZhLXZhci1maWxlLXByZXNjcmlwdGlvbjogXFxmNTcyO1xuJGZhLXZhci1maWxlLXNlYXJjaDogXFxmODY1O1xuJGZhLXZhci1maWxlLXNpZ25hdHVyZTogXFxmNTczO1xuJGZhLXZhci1maWxlLXNwcmVhZHNoZWV0OiBcXGY2NWI7XG4kZmEtdmFyLWZpbGUtdGltZXM6IFxcZjMxNztcbiRmYS12YXItZmlsZS11cGxvYWQ6IFxcZjU3NDtcbiRmYS12YXItZmlsZS11c2VyOiBcXGY2NWM7XG4kZmEtdmFyLWZpbGUtdmlkZW86IFxcZjFjODtcbiRmYS12YXItZmlsZS13b3JkOiBcXGYxYzI7XG4kZmEtdmFyLWZpbGVzLW1lZGljYWw6IFxcZjdmZDtcbiRmYS12YXItZmlsbDogXFxmNTc1O1xuJGZhLXZhci1maWxsLWRyaXA6IFxcZjU3NjtcbiRmYS12YXItZmlsbTogXFxmMDA4O1xuJGZhLXZhci1maWxtLWFsdDogXFxmM2EwO1xuJGZhLXZhci1maWxtLWNhbmlzdGVyOiBcXGY4Yjc7XG4kZmEtdmFyLWZpbHRlcjogXFxmMGIwO1xuJGZhLXZhci1maW5nZXJwcmludDogXFxmNTc3O1xuJGZhLXZhci1maXJlOiBcXGYwNmQ7XG4kZmEtdmFyLWZpcmUtYWx0OiBcXGY3ZTQ7XG4kZmEtdmFyLWZpcmUtZXh0aW5ndWlzaGVyOiBcXGYxMzQ7XG4kZmEtdmFyLWZpcmUtc21va2U6IFxcZjc0YjtcbiRmYS12YXItZmlyZWZveDogXFxmMjY5O1xuJGZhLXZhci1maXJlZm94LWJyb3dzZXI6IFxcZTAwNztcbiRmYS12YXItZmlyZXBsYWNlOiBcXGY3OWE7XG4kZmEtdmFyLWZpcnN0LWFpZDogXFxmNDc5O1xuJGZhLXZhci1maXJzdC1vcmRlcjogXFxmMmIwO1xuJGZhLXZhci1maXJzdC1vcmRlci1hbHQ6IFxcZjUwYTtcbiRmYS12YXItZmlyc3RkcmFmdDogXFxmM2ExO1xuJGZhLXZhci1maXNoOiBcXGY1Nzg7XG4kZmEtdmFyLWZpc2gtY29va2VkOiBcXGY3ZmU7XG4kZmEtdmFyLWZpc3QtcmFpc2VkOiBcXGY2ZGU7XG4kZmEtdmFyLWZsYWc6IFxcZjAyNDtcbiRmYS12YXItZmxhZy1hbHQ6IFxcZjc0YztcbiRmYS12YXItZmxhZy1jaGVja2VyZWQ6IFxcZjExZTtcbiRmYS12YXItZmxhZy11c2E6IFxcZjc0ZDtcbiRmYS12YXItZmxhbWU6IFxcZjZkZjtcbiRmYS12YXItZmxhc2hsaWdodDogXFxmOGI4O1xuJGZhLXZhci1mbGFzazogXFxmMGMzO1xuJGZhLXZhci1mbGFzay1wb2lzb246IFxcZjZlMDtcbiRmYS12YXItZmxhc2stcG90aW9uOiBcXGY2ZTE7XG4kZmEtdmFyLWZsaWNrcjogXFxmMTZlO1xuJGZhLXZhci1mbGlwYm9hcmQ6IFxcZjQ0ZDtcbiRmYS12YXItZmxvd2VyOiBcXGY3ZmY7XG4kZmEtdmFyLWZsb3dlci1kYWZmb2RpbDogXFxmODAwO1xuJGZhLXZhci1mbG93ZXItdHVsaXA6IFxcZjgwMTtcbiRmYS12YXItZmx1c2hlZDogXFxmNTc5O1xuJGZhLXZhci1mbHV0ZTogXFxmOGI5O1xuJGZhLXZhci1mbHV4LWNhcGFjaXRvcjogXFxmOGJhO1xuJGZhLXZhci1mbHk6IFxcZjQxNztcbiRmYS12YXItZm9nOiBcXGY3NGU7XG4kZmEtdmFyLWZvbGRlcjogXFxmMDdiO1xuJGZhLXZhci1mb2xkZXItZG93bmxvYWQ6IFxcZTA1MztcbiRmYS12YXItZm9sZGVyLW1pbnVzOiBcXGY2NWQ7XG4kZmEtdmFyLWZvbGRlci1vcGVuOiBcXGYwN2M7XG4kZmEtdmFyLWZvbGRlci1wbHVzOiBcXGY2NWU7XG4kZmEtdmFyLWZvbGRlci10aW1lczogXFxmNjVmO1xuJGZhLXZhci1mb2xkZXItdHJlZTogXFxmODAyO1xuJGZhLXZhci1mb2xkZXItdXBsb2FkOiBcXGUwNTQ7XG4kZmEtdmFyLWZvbGRlcnM6IFxcZjY2MDtcbiRmYS12YXItZm9udDogXFxmMDMxO1xuJGZhLXZhci1mb250LWF3ZXNvbWU6IFxcZjJiNDtcbiRmYS12YXItZm9udC1hd2Vzb21lLWFsdDogXFxmMzVjO1xuJGZhLXZhci1mb250LWF3ZXNvbWUtZmxhZzogXFxmNDI1O1xuJGZhLXZhci1mb250LWF3ZXNvbWUtbG9nby1mdWxsOiBcXGY0ZTY7XG4kZmEtdmFyLWZvbnQtY2FzZTogXFxmODY2O1xuJGZhLXZhci1mb250aWNvbnM6IFxcZjI4MDtcbiRmYS12YXItZm9udGljb25zLWZpOiBcXGYzYTI7XG4kZmEtdmFyLWZvb3RiYWxsLWJhbGw6IFxcZjQ0ZTtcbiRmYS12YXItZm9vdGJhbGwtaGVsbWV0OiBcXGY0NGY7XG4kZmEtdmFyLWZvcmtsaWZ0OiBcXGY0N2E7XG4kZmEtdmFyLWZvcnQtYXdlc29tZTogXFxmMjg2O1xuJGZhLXZhci1mb3J0LWF3ZXNvbWUtYWx0OiBcXGYzYTM7XG4kZmEtdmFyLWZvcnVtYmVlOiBcXGYyMTE7XG4kZmEtdmFyLWZvcndhcmQ6IFxcZjA0ZTtcbiRmYS12YXItZm91cnNxdWFyZTogXFxmMTgwO1xuJGZhLXZhci1mcmFnaWxlOiBcXGY0YmI7XG4kZmEtdmFyLWZyZWUtY29kZS1jYW1wOiBcXGYyYzU7XG4kZmEtdmFyLWZyZWVic2Q6IFxcZjNhNDtcbiRmYS12YXItZnJlbmNoLWZyaWVzOiBcXGY4MDM7XG4kZmEtdmFyLWZyb2c6IFxcZjUyZTtcbiRmYS12YXItZnJvc3R5LWhlYWQ6IFxcZjc5YjtcbiRmYS12YXItZnJvd246IFxcZjExOTtcbiRmYS12YXItZnJvd24tb3BlbjogXFxmNTdhO1xuJGZhLXZhci1mdWxjcnVtOiBcXGY1MGI7XG4kZmEtdmFyLWZ1bmN0aW9uOiBcXGY2NjE7XG4kZmEtdmFyLWZ1bm5lbC1kb2xsYXI6IFxcZjY2MjtcbiRmYS12YXItZnV0Ym9sOiBcXGYxZTM7XG4kZmEtdmFyLWdhbGFjdGljLXJlcHVibGljOiBcXGY1MGM7XG4kZmEtdmFyLWdhbGFjdGljLXNlbmF0ZTogXFxmNTBkO1xuJGZhLXZhci1nYWxheHk6IFxcZTAwODtcbiRmYS12YXItZ2FtZS1ib2FyZDogXFxmODY3O1xuJGZhLXZhci1nYW1lLWJvYXJkLWFsdDogXFxmODY4O1xuJGZhLXZhci1nYW1lLWNvbnNvbGUtaGFuZGhlbGQ6IFxcZjhiYjtcbiRmYS12YXItZ2FtZXBhZDogXFxmMTFiO1xuJGZhLXZhci1nYW1lcGFkLWFsdDogXFxmOGJjO1xuJGZhLXZhci1nYXJhZ2U6IFxcZTAwOTtcbiRmYS12YXItZ2FyYWdlLWNhcjogXFxlMDBhO1xuJGZhLXZhci1nYXJhZ2Utb3BlbjogXFxlMDBiO1xuJGZhLXZhci1nYXMtcHVtcDogXFxmNTJmO1xuJGZhLXZhci1nYXMtcHVtcC1zbGFzaDogXFxmNWY0O1xuJGZhLXZhci1nYXZlbDogXFxmMGUzO1xuJGZhLXZhci1nZW06IFxcZjNhNTtcbiRmYS12YXItZ2VuZGVybGVzczogXFxmMjJkO1xuJGZhLXZhci1nZXQtcG9ja2V0OiBcXGYyNjU7XG4kZmEtdmFyLWdnOiBcXGYyNjA7XG4kZmEtdmFyLWdnLWNpcmNsZTogXFxmMjYxO1xuJGZhLXZhci1naG9zdDogXFxmNmUyO1xuJGZhLXZhci1naWZ0OiBcXGYwNmI7XG4kZmEtdmFyLWdpZnQtY2FyZDogXFxmNjYzO1xuJGZhLXZhci1naWZ0czogXFxmNzljO1xuJGZhLXZhci1naW5nZXJicmVhZC1tYW46IFxcZjc5ZDtcbiRmYS12YXItZ2l0OiBcXGYxZDM7XG4kZmEtdmFyLWdpdC1hbHQ6IFxcZjg0MTtcbiRmYS12YXItZ2l0LXNxdWFyZTogXFxmMWQyO1xuJGZhLXZhci1naXRodWI6IFxcZjA5YjtcbiRmYS12YXItZ2l0aHViLWFsdDogXFxmMTEzO1xuJGZhLXZhci1naXRodWItc3F1YXJlOiBcXGYwOTI7XG4kZmEtdmFyLWdpdGtyYWtlbjogXFxmM2E2O1xuJGZhLXZhci1naXRsYWI6IFxcZjI5NjtcbiRmYS12YXItZ2l0dGVyOiBcXGY0MjY7XG4kZmEtdmFyLWdsYXNzOiBcXGY4MDQ7XG4kZmEtdmFyLWdsYXNzLWNoYW1wYWduZTogXFxmNzllO1xuJGZhLXZhci1nbGFzcy1jaGVlcnM6IFxcZjc5ZjtcbiRmYS12YXItZ2xhc3MtY2l0cnVzOiBcXGY4Njk7XG4kZmEtdmFyLWdsYXNzLW1hcnRpbmk6IFxcZjAwMDtcbiRmYS12YXItZ2xhc3MtbWFydGluaS1hbHQ6IFxcZjU3YjtcbiRmYS12YXItZ2xhc3Mtd2hpc2tleTogXFxmN2EwO1xuJGZhLXZhci1nbGFzcy13aGlza2V5LXJvY2tzOiBcXGY3YTE7XG4kZmEtdmFyLWdsYXNzZXM6IFxcZjUzMDtcbiRmYS12YXItZ2xhc3Nlcy1hbHQ6IFxcZjVmNTtcbiRmYS12YXItZ2xpZGU6IFxcZjJhNTtcbiRmYS12YXItZ2xpZGUtZzogXFxmMmE2O1xuJGZhLXZhci1nbG9iZTogXFxmMGFjO1xuJGZhLXZhci1nbG9iZS1hZnJpY2E6IFxcZjU3YztcbiRmYS12YXItZ2xvYmUtYW1lcmljYXM6IFxcZjU3ZDtcbiRmYS12YXItZ2xvYmUtYXNpYTogXFxmNTdlO1xuJGZhLXZhci1nbG9iZS1ldXJvcGU6IFxcZjdhMjtcbiRmYS12YXItZ2xvYmUtc25vdzogXFxmN2EzO1xuJGZhLXZhci1nbG9iZS1zdGFuZDogXFxmNWY2O1xuJGZhLXZhci1nb2ZvcmU6IFxcZjNhNztcbiRmYS12YXItZ29sZi1iYWxsOiBcXGY0NTA7XG4kZmEtdmFyLWdvbGYtY2x1YjogXFxmNDUxO1xuJGZhLXZhci1nb29kcmVhZHM6IFxcZjNhODtcbiRmYS12YXItZ29vZHJlYWRzLWc6IFxcZjNhOTtcbiRmYS12YXItZ29vZ2xlOiBcXGYxYTA7XG4kZmEtdmFyLWdvb2dsZS1kcml2ZTogXFxmM2FhO1xuJGZhLXZhci1nb29nbGUtcGF5OiBcXGUwNzk7XG4kZmEtdmFyLWdvb2dsZS1wbGF5OiBcXGYzYWI7XG4kZmEtdmFyLWdvb2dsZS1wbHVzOiBcXGYyYjM7XG4kZmEtdmFyLWdvb2dsZS1wbHVzLWc6IFxcZjBkNTtcbiRmYS12YXItZ29vZ2xlLXBsdXMtc3F1YXJlOiBcXGYwZDQ7XG4kZmEtdmFyLWdvb2dsZS13YWxsZXQ6IFxcZjFlZTtcbiRmYS12YXItZ29wdXJhbTogXFxmNjY0O1xuJGZhLXZhci1ncmFkdWF0aW9uLWNhcDogXFxmMTlkO1xuJGZhLXZhci1ncmFtb3Bob25lOiBcXGY4YmQ7XG4kZmEtdmFyLWdyYXRpcGF5OiBcXGYxODQ7XG4kZmEtdmFyLWdyYXY6IFxcZjJkNjtcbiRmYS12YXItZ3JlYXRlci10aGFuOiBcXGY1MzE7XG4kZmEtdmFyLWdyZWF0ZXItdGhhbi1lcXVhbDogXFxmNTMyO1xuJGZhLXZhci1ncmltYWNlOiBcXGY1N2Y7XG4kZmEtdmFyLWdyaW46IFxcZjU4MDtcbiRmYS12YXItZ3Jpbi1hbHQ6IFxcZjU4MTtcbiRmYS12YXItZ3Jpbi1iZWFtOiBcXGY1ODI7XG4kZmEtdmFyLWdyaW4tYmVhbS1zd2VhdDogXFxmNTgzO1xuJGZhLXZhci1ncmluLWhlYXJ0czogXFxmNTg0O1xuJGZhLXZhci1ncmluLXNxdWludDogXFxmNTg1O1xuJGZhLXZhci1ncmluLXNxdWludC10ZWFyczogXFxmNTg2O1xuJGZhLXZhci1ncmluLXN0YXJzOiBcXGY1ODc7XG4kZmEtdmFyLWdyaW4tdGVhcnM6IFxcZjU4ODtcbiRmYS12YXItZ3Jpbi10b25ndWU6IFxcZjU4OTtcbiRmYS12YXItZ3Jpbi10b25ndWUtc3F1aW50OiBcXGY1OGE7XG4kZmEtdmFyLWdyaW4tdG9uZ3VlLXdpbms6IFxcZjU4YjtcbiRmYS12YXItZ3Jpbi13aW5rOiBcXGY1OGM7XG4kZmEtdmFyLWdyaXAtaG9yaXpvbnRhbDogXFxmNThkO1xuJGZhLXZhci1ncmlwLWxpbmVzOiBcXGY3YTQ7XG4kZmEtdmFyLWdyaXAtbGluZXMtdmVydGljYWw6IFxcZjdhNTtcbiRmYS12YXItZ3JpcC12ZXJ0aWNhbDogXFxmNThlO1xuJGZhLXZhci1ncmlwZmlyZTogXFxmM2FjO1xuJGZhLXZhci1ncnVudDogXFxmM2FkO1xuJGZhLXZhci1ndWlsZGVkOiBcXGUwN2U7XG4kZmEtdmFyLWd1aXRhcjogXFxmN2E2O1xuJGZhLXZhci1ndWl0YXItZWxlY3RyaWM6IFxcZjhiZTtcbiRmYS12YXItZ3VpdGFyczogXFxmOGJmO1xuJGZhLXZhci1ndWxwOiBcXGYzYWU7XG4kZmEtdmFyLWgtc3F1YXJlOiBcXGYwZmQ7XG4kZmEtdmFyLWgxOiBcXGYzMTM7XG4kZmEtdmFyLWgyOiBcXGYzMTQ7XG4kZmEtdmFyLWgzOiBcXGYzMTU7XG4kZmEtdmFyLWg0OiBcXGY4NmE7XG4kZmEtdmFyLWhhY2tlci1uZXdzOiBcXGYxZDQ7XG4kZmEtdmFyLWhhY2tlci1uZXdzLXNxdWFyZTogXFxmM2FmO1xuJGZhLXZhci1oYWNrZXJyYW5rOiBcXGY1Zjc7XG4kZmEtdmFyLWhhbWJ1cmdlcjogXFxmODA1O1xuJGZhLXZhci1oYW1tZXI6IFxcZjZlMztcbiRmYS12YXItaGFtbWVyLXdhcjogXFxmNmU0O1xuJGZhLXZhci1oYW1zYTogXFxmNjY1O1xuJGZhLXZhci1oYW5kLWhlYXJ0OiBcXGY0YmM7XG4kZmEtdmFyLWhhbmQtaG9sZGluZzogXFxmNGJkO1xuJGZhLXZhci1oYW5kLWhvbGRpbmctYm94OiBcXGY0N2I7XG4kZmEtdmFyLWhhbmQtaG9sZGluZy1oZWFydDogXFxmNGJlO1xuJGZhLXZhci1oYW5kLWhvbGRpbmctbWFnaWM6IFxcZjZlNTtcbiRmYS12YXItaGFuZC1ob2xkaW5nLW1lZGljYWw6IFxcZTA1YztcbiRmYS12YXItaGFuZC1ob2xkaW5nLXNlZWRsaW5nOiBcXGY0YmY7XG4kZmEtdmFyLWhhbmQtaG9sZGluZy11c2Q6IFxcZjRjMDtcbiRmYS12YXItaGFuZC1ob2xkaW5nLXdhdGVyOiBcXGY0YzE7XG4kZmEtdmFyLWhhbmQtbGl6YXJkOiBcXGYyNTg7XG4kZmEtdmFyLWhhbmQtbWlkZGxlLWZpbmdlcjogXFxmODA2O1xuJGZhLXZhci1oYW5kLXBhcGVyOiBcXGYyNTY7XG4kZmEtdmFyLWhhbmQtcGVhY2U6IFxcZjI1YjtcbiRmYS12YXItaGFuZC1wb2ludC1kb3duOiBcXGYwYTc7XG4kZmEtdmFyLWhhbmQtcG9pbnQtbGVmdDogXFxmMGE1O1xuJGZhLXZhci1oYW5kLXBvaW50LXJpZ2h0OiBcXGYwYTQ7XG4kZmEtdmFyLWhhbmQtcG9pbnQtdXA6IFxcZjBhNjtcbiRmYS12YXItaGFuZC1wb2ludGVyOiBcXGYyNWE7XG4kZmEtdmFyLWhhbmQtcmVjZWl2aW5nOiBcXGY0N2M7XG4kZmEtdmFyLWhhbmQtcm9jazogXFxmMjU1O1xuJGZhLXZhci1oYW5kLXNjaXNzb3JzOiBcXGYyNTc7XG4kZmEtdmFyLWhhbmQtc3BhcmtsZXM6IFxcZTA1ZDtcbiRmYS12YXItaGFuZC1zcG9jazogXFxmMjU5O1xuJGZhLXZhci1oYW5kczogXFxmNGMyO1xuJGZhLXZhci1oYW5kcy1oZWFydDogXFxmNGMzO1xuJGZhLXZhci1oYW5kcy1oZWxwaW5nOiBcXGY0YzQ7XG4kZmEtdmFyLWhhbmRzLXVzZDogXFxmNGM1O1xuJGZhLXZhci1oYW5kcy13YXNoOiBcXGUwNWU7XG4kZmEtdmFyLWhhbmRzaGFrZTogXFxmMmI1O1xuJGZhLXZhci1oYW5kc2hha2UtYWx0OiBcXGY0YzY7XG4kZmEtdmFyLWhhbmRzaGFrZS1hbHQtc2xhc2g6IFxcZTA1ZjtcbiRmYS12YXItaGFuZHNoYWtlLXNsYXNoOiBcXGUwNjA7XG4kZmEtdmFyLWhhbnVraWFoOiBcXGY2ZTY7XG4kZmEtdmFyLWhhcmQtaGF0OiBcXGY4MDc7XG4kZmEtdmFyLWhhc2h0YWc6IFxcZjI5MjtcbiRmYS12YXItaGF0LWNoZWY6IFxcZjg2YjtcbiRmYS12YXItaGF0LWNvd2JveTogXFxmOGMwO1xuJGZhLXZhci1oYXQtY293Ym95LXNpZGU6IFxcZjhjMTtcbiRmYS12YXItaGF0LXNhbnRhOiBcXGY3YTc7XG4kZmEtdmFyLWhhdC13aW50ZXI6IFxcZjdhODtcbiRmYS12YXItaGF0LXdpdGNoOiBcXGY2ZTc7XG4kZmEtdmFyLWhhdC13aXphcmQ6IFxcZjZlODtcbiRmYS12YXItaGRkOiBcXGYwYTA7XG4kZmEtdmFyLWhlYWQtc2lkZTogXFxmNmU5O1xuJGZhLXZhci1oZWFkLXNpZGUtYnJhaW46IFxcZjgwODtcbiRmYS12YXItaGVhZC1zaWRlLWNvdWdoOiBcXGUwNjE7XG4kZmEtdmFyLWhlYWQtc2lkZS1jb3VnaC1zbGFzaDogXFxlMDYyO1xuJGZhLXZhci1oZWFkLXNpZGUtaGVhZHBob25lczogXFxmOGMyO1xuJGZhLXZhci1oZWFkLXNpZGUtbWFzazogXFxlMDYzO1xuJGZhLXZhci1oZWFkLXNpZGUtbWVkaWNhbDogXFxmODA5O1xuJGZhLXZhci1oZWFkLXNpZGUtdmlydXM6IFxcZTA2NDtcbiRmYS12YXItaGVhZC12cjogXFxmNmVhO1xuJGZhLXZhci1oZWFkaW5nOiBcXGYxZGM7XG4kZmEtdmFyLWhlYWRwaG9uZXM6IFxcZjAyNTtcbiRmYS12YXItaGVhZHBob25lcy1hbHQ6IFxcZjU4ZjtcbiRmYS12YXItaGVhZHNldDogXFxmNTkwO1xuJGZhLXZhci1oZWFydDogXFxmMDA0O1xuJGZhLXZhci1oZWFydC1icm9rZW46IFxcZjdhOTtcbiRmYS12YXItaGVhcnQtY2lyY2xlOiBcXGY0Yzc7XG4kZmEtdmFyLWhlYXJ0LXJhdGU6IFxcZjVmODtcbiRmYS12YXItaGVhcnQtc3F1YXJlOiBcXGY0Yzg7XG4kZmEtdmFyLWhlYXJ0YmVhdDogXFxmMjFlO1xuJGZhLXZhci1oZWF0OiBcXGUwMGM7XG4kZmEtdmFyLWhlbGljb3B0ZXI6IFxcZjUzMztcbiRmYS12YXItaGVsbWV0LWJhdHRsZTogXFxmNmViO1xuJGZhLXZhci1oZXhhZ29uOiBcXGYzMTI7XG4kZmEtdmFyLWhpZ2hsaWdodGVyOiBcXGY1OTE7XG4kZmEtdmFyLWhpa2luZzogXFxmNmVjO1xuJGZhLXZhci1oaXBwbzogXFxmNmVkO1xuJGZhLXZhci1oaXBzOiBcXGY0NTI7XG4kZmEtdmFyLWhpcmUtYS1oZWxwZXI6IFxcZjNiMDtcbiRmYS12YXItaGlzdG9yeTogXFxmMWRhO1xuJGZhLXZhci1oaXZlOiBcXGUwN2Y7XG4kZmEtdmFyLWhvY2tleS1tYXNrOiBcXGY2ZWU7XG4kZmEtdmFyLWhvY2tleS1wdWNrOiBcXGY0NTM7XG4kZmEtdmFyLWhvY2tleS1zdGlja3M6IFxcZjQ1NDtcbiRmYS12YXItaG9sbHktYmVycnk6IFxcZjdhYTtcbiRmYS12YXItaG9tZTogXFxmMDE1O1xuJGZhLXZhci1ob21lLWFsdDogXFxmODBhO1xuJGZhLXZhci1ob21lLWhlYXJ0OiBcXGY0Yzk7XG4kZmEtdmFyLWhvbWUtbGc6IFxcZjgwYjtcbiRmYS12YXItaG9tZS1sZy1hbHQ6IFxcZjgwYztcbiRmYS12YXItaG9vZC1jbG9hazogXFxmNmVmO1xuJGZhLXZhci1ob29saTogXFxmNDI3O1xuJGZhLXZhci1ob3Jpem9udGFsLXJ1bGU6IFxcZjg2YztcbiRmYS12YXItaG9ybmJpbGw6IFxcZjU5MjtcbiRmYS12YXItaG9yc2U6IFxcZjZmMDtcbiRmYS12YXItaG9yc2UtaGVhZDogXFxmN2FiO1xuJGZhLXZhci1ob3JzZS1zYWRkbGU6IFxcZjhjMztcbiRmYS12YXItaG9zcGl0YWw6IFxcZjBmODtcbiRmYS12YXItaG9zcGl0YWwtYWx0OiBcXGY0N2Q7XG4kZmEtdmFyLWhvc3BpdGFsLXN5bWJvbDogXFxmNDdlO1xuJGZhLXZhci1ob3NwaXRhbC11c2VyOiBcXGY4MGQ7XG4kZmEtdmFyLWhvc3BpdGFsczogXFxmODBlO1xuJGZhLXZhci1ob3QtdHViOiBcXGY1OTM7XG4kZmEtdmFyLWhvdGRvZzogXFxmODBmO1xuJGZhLXZhci1ob3RlbDogXFxmNTk0O1xuJGZhLXZhci1ob3RqYXI6IFxcZjNiMTtcbiRmYS12YXItaG91cmdsYXNzOiBcXGYyNTQ7XG4kZmEtdmFyLWhvdXJnbGFzcy1lbmQ6IFxcZjI1MztcbiRmYS12YXItaG91cmdsYXNzLWhhbGY6IFxcZjI1MjtcbiRmYS12YXItaG91cmdsYXNzLXN0YXJ0OiBcXGYyNTE7XG4kZmEtdmFyLWhvdXNlOiBcXGUwMGQ7XG4kZmEtdmFyLWhvdXNlLWRhbWFnZTogXFxmNmYxO1xuJGZhLXZhci1ob3VzZS1kYXk6IFxcZTAwZTtcbiRmYS12YXItaG91c2UtZmxvb2Q6IFxcZjc0ZjtcbiRmYS12YXItaG91c2UtbGVhdmU6IFxcZTAwZjtcbiRmYS12YXItaG91c2UtbmlnaHQ6IFxcZTAxMDtcbiRmYS12YXItaG91c2UtcmV0dXJuOiBcXGUwMTE7XG4kZmEtdmFyLWhvdXNlLXNpZ25hbDogXFxlMDEyO1xuJGZhLXZhci1ob3VzZS11c2VyOiBcXGUwNjU7XG4kZmEtdmFyLWhvdXp6OiBcXGYyN2M7XG4kZmEtdmFyLWhyeXZuaWE6IFxcZjZmMjtcbiRmYS12YXItaHRtbDU6IFxcZjEzYjtcbiRmYS12YXItaHVic3BvdDogXFxmM2IyO1xuJGZhLXZhci1odW1pZGl0eTogXFxmNzUwO1xuJGZhLXZhci1odXJyaWNhbmU6IFxcZjc1MTtcbiRmYS12YXItaS1jdXJzb3I6IFxcZjI0NjtcbiRmYS12YXItaWNlLWNyZWFtOiBcXGY4MTA7XG4kZmEtdmFyLWljZS1za2F0ZTogXFxmN2FjO1xuJGZhLXZhci1pY2ljbGVzOiBcXGY3YWQ7XG4kZmEtdmFyLWljb25zOiBcXGY4NmQ7XG4kZmEtdmFyLWljb25zLWFsdDogXFxmODZlO1xuJGZhLXZhci1pZC1iYWRnZTogXFxmMmMxO1xuJGZhLXZhci1pZC1jYXJkOiBcXGYyYzI7XG4kZmEtdmFyLWlkLWNhcmQtYWx0OiBcXGY0N2Y7XG4kZmEtdmFyLWlkZWFsOiBcXGUwMTM7XG4kZmEtdmFyLWlnbG9vOiBcXGY3YWU7XG4kZmEtdmFyLWltYWdlOiBcXGYwM2U7XG4kZmEtdmFyLWltYWdlLXBvbGFyb2lkOiBcXGY4YzQ7XG4kZmEtdmFyLWltYWdlczogXFxmMzAyO1xuJGZhLXZhci1pbWRiOiBcXGYyZDg7XG4kZmEtdmFyLWluYm94OiBcXGYwMWM7XG4kZmEtdmFyLWluYm94LWluOiBcXGYzMTA7XG4kZmEtdmFyLWluYm94LW91dDogXFxmMzExO1xuJGZhLXZhci1pbmRlbnQ6IFxcZjAzYztcbiRmYS12YXItaW5kdXN0cnk6IFxcZjI3NTtcbiRmYS12YXItaW5kdXN0cnktYWx0OiBcXGYzYjM7XG4kZmEtdmFyLWluZmluaXR5OiBcXGY1MzQ7XG4kZmEtdmFyLWluZm86IFxcZjEyOTtcbiRmYS12YXItaW5mby1jaXJjbGU6IFxcZjA1YTtcbiRmYS12YXItaW5mby1zcXVhcmU6IFxcZjMwZjtcbiRmYS12YXItaW5oYWxlcjogXFxmNWY5O1xuJGZhLXZhci1pbm5vc29mdDogXFxlMDgwO1xuJGZhLXZhci1pbnN0YWdyYW06IFxcZjE2ZDtcbiRmYS12YXItaW5zdGFncmFtLXNxdWFyZTogXFxlMDU1O1xuJGZhLXZhci1pbnN0YWxvZDogXFxlMDgxO1xuJGZhLXZhci1pbnRlZ3JhbDogXFxmNjY3O1xuJGZhLXZhci1pbnRlcmNvbTogXFxmN2FmO1xuJGZhLXZhci1pbnRlcm5ldC1leHBsb3JlcjogXFxmMjZiO1xuJGZhLXZhci1pbnRlcnNlY3Rpb246IFxcZjY2ODtcbiRmYS12YXItaW52ZW50b3J5OiBcXGY0ODA7XG4kZmEtdmFyLWludmlzaW9uOiBcXGY3YjA7XG4kZmEtdmFyLWlveGhvc3Q6IFxcZjIwODtcbiRmYS12YXItaXNsYW5kLXRyb3BpY2FsOiBcXGY4MTE7XG4kZmEtdmFyLWl0YWxpYzogXFxmMDMzO1xuJGZhLXZhci1pdGNoLWlvOiBcXGY4M2E7XG4kZmEtdmFyLWl0dW5lczogXFxmM2I0O1xuJGZhLXZhci1pdHVuZXMtbm90ZTogXFxmM2I1O1xuJGZhLXZhci1qYWNrLW8tbGFudGVybjogXFxmMzBlO1xuJGZhLXZhci1qYXZhOiBcXGY0ZTQ7XG4kZmEtdmFyLWplZGk6IFxcZjY2OTtcbiRmYS12YXItamVkaS1vcmRlcjogXFxmNTBlO1xuJGZhLXZhci1qZW5raW5zOiBcXGYzYjY7XG4kZmEtdmFyLWppcmE6IFxcZjdiMTtcbiRmYS12YXItam9nZXQ6IFxcZjNiNztcbiRmYS12YXItam9pbnQ6IFxcZjU5NTtcbiRmYS12YXItam9vbWxhOiBcXGYxYWE7XG4kZmEtdmFyLWpvdXJuYWwtd2hpbGxzOiBcXGY2NmE7XG4kZmEtdmFyLWpveXN0aWNrOiBcXGY4YzU7XG4kZmEtdmFyLWpzOiBcXGYzYjg7XG4kZmEtdmFyLWpzLXNxdWFyZTogXFxmM2I5O1xuJGZhLXZhci1qc2ZpZGRsZTogXFxmMWNjO1xuJGZhLXZhci1qdWc6IFxcZjhjNjtcbiRmYS12YXIta2FhYmE6IFxcZjY2YjtcbiRmYS12YXIta2FnZ2xlOiBcXGY1ZmE7XG4kZmEtdmFyLWthem9vOiBcXGY4Yzc7XG4kZmEtdmFyLWtlcm5pbmc6IFxcZjg2ZjtcbiRmYS12YXIta2V5OiBcXGYwODQ7XG4kZmEtdmFyLWtleS1za2VsZXRvbjogXFxmNmYzO1xuJGZhLXZhci1rZXliYXNlOiBcXGY0ZjU7XG4kZmEtdmFyLWtleWJvYXJkOiBcXGYxMWM7XG4kZmEtdmFyLWtleWNkbjogXFxmM2JhO1xuJGZhLXZhci1rZXlub3RlOiBcXGY2NmM7XG4kZmEtdmFyLWtoYW5kYTogXFxmNjZkO1xuJGZhLXZhci1raWNrc3RhcnRlcjogXFxmM2JiO1xuJGZhLXZhci1raWNrc3RhcnRlci1rOiBcXGYzYmM7XG4kZmEtdmFyLWtpZG5leXM6IFxcZjVmYjtcbiRmYS12YXIta2lzczogXFxmNTk2O1xuJGZhLXZhci1raXNzLWJlYW06IFxcZjU5NztcbiRmYS12YXIta2lzcy13aW5rLWhlYXJ0OiBcXGY1OTg7XG4kZmEtdmFyLWtpdGU6IFxcZjZmNDtcbiRmYS12YXIta2l3aS1iaXJkOiBcXGY1MzU7XG4kZmEtdmFyLWtuaWZlLWtpdGNoZW46IFxcZjZmNTtcbiRmYS12YXIta29ydnVlOiBcXGY0MmY7XG4kZmEtdmFyLWxhbWJkYTogXFxmNjZlO1xuJGZhLXZhci1sYW1wOiBcXGY0Y2E7XG4kZmEtdmFyLWxhbXAtZGVzazogXFxlMDE0O1xuJGZhLXZhci1sYW1wLWZsb29yOiBcXGUwMTU7XG4kZmEtdmFyLWxhbmRtYXJrOiBcXGY2NmY7XG4kZmEtdmFyLWxhbmRtYXJrLWFsdDogXFxmNzUyO1xuJGZhLXZhci1sYW5ndWFnZTogXFxmMWFiO1xuJGZhLXZhci1sYXB0b3A6IFxcZjEwOTtcbiRmYS12YXItbGFwdG9wLWNvZGU6IFxcZjVmYztcbiRmYS12YXItbGFwdG9wLWhvdXNlOiBcXGUwNjY7XG4kZmEtdmFyLWxhcHRvcC1tZWRpY2FsOiBcXGY4MTI7XG4kZmEtdmFyLWxhcmF2ZWw6IFxcZjNiZDtcbiRmYS12YXItbGFzc286IFxcZjhjODtcbiRmYS12YXItbGFzdGZtOiBcXGYyMDI7XG4kZmEtdmFyLWxhc3RmbS1zcXVhcmU6IFxcZjIwMztcbiRmYS12YXItbGF1Z2g6IFxcZjU5OTtcbiRmYS12YXItbGF1Z2gtYmVhbTogXFxmNTlhO1xuJGZhLXZhci1sYXVnaC1zcXVpbnQ6IFxcZjU5YjtcbiRmYS12YXItbGF1Z2gtd2luazogXFxmNTljO1xuJGZhLXZhci1sYXllci1ncm91cDogXFxmNWZkO1xuJGZhLXZhci1sYXllci1taW51czogXFxmNWZlO1xuJGZhLXZhci1sYXllci1wbHVzOiBcXGY1ZmY7XG4kZmEtdmFyLWxlYWY6IFxcZjA2YztcbiRmYS12YXItbGVhZi1oZWFydDogXFxmNGNiO1xuJGZhLXZhci1sZWFmLW1hcGxlOiBcXGY2ZjY7XG4kZmEtdmFyLWxlYWYtb2FrOiBcXGY2Zjc7XG4kZmEtdmFyLWxlYW5wdWI6IFxcZjIxMjtcbiRmYS12YXItbGVtb246IFxcZjA5NDtcbiRmYS12YXItbGVzczogXFxmNDFkO1xuJGZhLXZhci1sZXNzLXRoYW46IFxcZjUzNjtcbiRmYS12YXItbGVzcy10aGFuLWVxdWFsOiBcXGY1Mzc7XG4kZmEtdmFyLWxldmVsLWRvd246IFxcZjE0OTtcbiRmYS12YXItbGV2ZWwtZG93bi1hbHQ6IFxcZjNiZTtcbiRmYS12YXItbGV2ZWwtdXA6IFxcZjE0ODtcbiRmYS12YXItbGV2ZWwtdXAtYWx0OiBcXGYzYmY7XG4kZmEtdmFyLWxpZmUtcmluZzogXFxmMWNkO1xuJGZhLXZhci1saWdodC1jZWlsaW5nOiBcXGUwMTY7XG4kZmEtdmFyLWxpZ2h0LXN3aXRjaDogXFxlMDE3O1xuJGZhLXZhci1saWdodC1zd2l0Y2gtb2ZmOiBcXGUwMTg7XG4kZmEtdmFyLWxpZ2h0LXN3aXRjaC1vbjogXFxlMDE5O1xuJGZhLXZhci1saWdodGJ1bGI6IFxcZjBlYjtcbiRmYS12YXItbGlnaHRidWxiLWRvbGxhcjogXFxmNjcwO1xuJGZhLXZhci1saWdodGJ1bGItZXhjbGFtYXRpb246IFxcZjY3MTtcbiRmYS12YXItbGlnaHRidWxiLW9uOiBcXGY2NzI7XG4kZmEtdmFyLWxpZ2h0YnVsYi1zbGFzaDogXFxmNjczO1xuJGZhLXZhci1saWdodHMtaG9saWRheTogXFxmN2IyO1xuJGZhLXZhci1saW5lOiBcXGYzYzA7XG4kZmEtdmFyLWxpbmUtY29sdW1uczogXFxmODcwO1xuJGZhLXZhci1saW5lLWhlaWdodDogXFxmODcxO1xuJGZhLXZhci1saW5rOiBcXGYwYzE7XG4kZmEtdmFyLWxpbmtlZGluOiBcXGYwOGM7XG4kZmEtdmFyLWxpbmtlZGluLWluOiBcXGYwZTE7XG4kZmEtdmFyLWxpbm9kZTogXFxmMmI4O1xuJGZhLXZhci1saW51eDogXFxmMTdjO1xuJGZhLXZhci1saXBzOiBcXGY2MDA7XG4kZmEtdmFyLWxpcmEtc2lnbjogXFxmMTk1O1xuJGZhLXZhci1saXN0OiBcXGYwM2E7XG4kZmEtdmFyLWxpc3QtYWx0OiBcXGYwMjI7XG4kZmEtdmFyLWxpc3QtbXVzaWM6IFxcZjhjOTtcbiRmYS12YXItbGlzdC1vbDogXFxmMGNiO1xuJGZhLXZhci1saXN0LXVsOiBcXGYwY2E7XG4kZmEtdmFyLWxvY2F0aW9uOiBcXGY2MDE7XG4kZmEtdmFyLWxvY2F0aW9uLWFycm93OiBcXGYxMjQ7XG4kZmEtdmFyLWxvY2F0aW9uLWNpcmNsZTogXFxmNjAyO1xuJGZhLXZhci1sb2NhdGlvbi1zbGFzaDogXFxmNjAzO1xuJGZhLXZhci1sb2NrOiBcXGYwMjM7XG4kZmEtdmFyLWxvY2stYWx0OiBcXGYzMGQ7XG4kZmEtdmFyLWxvY2stb3BlbjogXFxmM2MxO1xuJGZhLXZhci1sb2NrLW9wZW4tYWx0OiBcXGYzYzI7XG4kZmEtdmFyLWxvbmctYXJyb3ctYWx0LWRvd246IFxcZjMwOTtcbiRmYS12YXItbG9uZy1hcnJvdy1hbHQtbGVmdDogXFxmMzBhO1xuJGZhLXZhci1sb25nLWFycm93LWFsdC1yaWdodDogXFxmMzBiO1xuJGZhLXZhci1sb25nLWFycm93LWFsdC11cDogXFxmMzBjO1xuJGZhLXZhci1sb25nLWFycm93LWRvd246IFxcZjE3NTtcbiRmYS12YXItbG9uZy1hcnJvdy1sZWZ0OiBcXGYxNzc7XG4kZmEtdmFyLWxvbmctYXJyb3ctcmlnaHQ6IFxcZjE3ODtcbiRmYS12YXItbG9uZy1hcnJvdy11cDogXFxmMTc2O1xuJGZhLXZhci1sb3Zlc2VhdDogXFxmNGNjO1xuJGZhLXZhci1sb3ctdmlzaW9uOiBcXGYyYTg7XG4kZmEtdmFyLWx1Y2hhZG9yOiBcXGY0NTU7XG4kZmEtdmFyLWx1Z2dhZ2UtY2FydDogXFxmNTlkO1xuJGZhLXZhci1sdW5nczogXFxmNjA0O1xuJGZhLXZhci1sdW5ncy12aXJ1czogXFxlMDY3O1xuJGZhLXZhci1seWZ0OiBcXGYzYzM7XG4kZmEtdmFyLW1hY2U6IFxcZjZmODtcbiRmYS12YXItbWFnZW50bzogXFxmM2M0O1xuJGZhLXZhci1tYWdpYzogXFxmMGQwO1xuJGZhLXZhci1tYWduZXQ6IFxcZjA3NjtcbiRmYS12YXItbWFpbC1idWxrOiBcXGY2NzQ7XG4kZmEtdmFyLW1haWxib3g6IFxcZjgxMztcbiRmYS12YXItbWFpbGNoaW1wOiBcXGY1OWU7XG4kZmEtdmFyLW1hbGU6IFxcZjE4MztcbiRmYS12YXItbWFuZGFsb3JpYW46IFxcZjUwZjtcbiRmYS12YXItbWFuZG9saW46IFxcZjZmOTtcbiRmYS12YXItbWFwOiBcXGYyNzk7XG4kZmEtdmFyLW1hcC1tYXJrZWQ6IFxcZjU5ZjtcbiRmYS12YXItbWFwLW1hcmtlZC1hbHQ6IFxcZjVhMDtcbiRmYS12YXItbWFwLW1hcmtlcjogXFxmMDQxO1xuJGZhLXZhci1tYXAtbWFya2VyLWFsdDogXFxmM2M1O1xuJGZhLXZhci1tYXAtbWFya2VyLWFsdC1zbGFzaDogXFxmNjA1O1xuJGZhLXZhci1tYXAtbWFya2VyLWNoZWNrOiBcXGY2MDY7XG4kZmEtdmFyLW1hcC1tYXJrZXItZWRpdDogXFxmNjA3O1xuJGZhLXZhci1tYXAtbWFya2VyLWV4Y2xhbWF0aW9uOiBcXGY2MDg7XG4kZmEtdmFyLW1hcC1tYXJrZXItbWludXM6IFxcZjYwOTtcbiRmYS12YXItbWFwLW1hcmtlci1wbHVzOiBcXGY2MGE7XG4kZmEtdmFyLW1hcC1tYXJrZXItcXVlc3Rpb246IFxcZjYwYjtcbiRmYS12YXItbWFwLW1hcmtlci1zbGFzaDogXFxmNjBjO1xuJGZhLXZhci1tYXAtbWFya2VyLXNtaWxlOiBcXGY2MGQ7XG4kZmEtdmFyLW1hcC1tYXJrZXItdGltZXM6IFxcZjYwZTtcbiRmYS12YXItbWFwLXBpbjogXFxmMjc2O1xuJGZhLXZhci1tYXAtc2lnbnM6IFxcZjI3NztcbiRmYS12YXItbWFya2Rvd246IFxcZjYwZjtcbiRmYS12YXItbWFya2VyOiBcXGY1YTE7XG4kZmEtdmFyLW1hcnM6IFxcZjIyMjtcbiRmYS12YXItbWFycy1kb3VibGU6IFxcZjIyNztcbiRmYS12YXItbWFycy1zdHJva2U6IFxcZjIyOTtcbiRmYS12YXItbWFycy1zdHJva2UtaDogXFxmMjJiO1xuJGZhLXZhci1tYXJzLXN0cm9rZS12OiBcXGYyMmE7XG4kZmEtdmFyLW1hc2s6IFxcZjZmYTtcbiRmYS12YXItbWFzdG9kb246IFxcZjRmNjtcbiRmYS12YXItbWF4Y2RuOiBcXGYxMzY7XG4kZmEtdmFyLW1kYjogXFxmOGNhO1xuJGZhLXZhci1tZWF0OiBcXGY4MTQ7XG4kZmEtdmFyLW1lZGFsOiBcXGY1YTI7XG4kZmEtdmFyLW1lZGFwcHM6IFxcZjNjNjtcbiRmYS12YXItbWVkaXVtOiBcXGYyM2E7XG4kZmEtdmFyLW1lZGl1bS1tOiBcXGYzYzc7XG4kZmEtdmFyLW1lZGtpdDogXFxmMGZhO1xuJGZhLXZhci1tZWRydDogXFxmM2M4O1xuJGZhLXZhci1tZWV0dXA6IFxcZjJlMDtcbiRmYS12YXItbWVnYXBob25lOiBcXGY2NzU7XG4kZmEtdmFyLW1lZ2Fwb3J0OiBcXGY1YTM7XG4kZmEtdmFyLW1laDogXFxmMTFhO1xuJGZhLXZhci1tZWgtYmxhbms6IFxcZjVhNDtcbiRmYS12YXItbWVoLXJvbGxpbmctZXllczogXFxmNWE1O1xuJGZhLXZhci1tZW1vcnk6IFxcZjUzODtcbiRmYS12YXItbWVuZGVsZXk6IFxcZjdiMztcbiRmYS12YXItbWVub3JhaDogXFxmNjc2O1xuJGZhLXZhci1tZXJjdXJ5OiBcXGYyMjM7XG4kZmEtdmFyLW1ldGVvcjogXFxmNzUzO1xuJGZhLXZhci1taWNyb2Jsb2c6IFxcZTAxYTtcbiRmYS12YXItbWljcm9jaGlwOiBcXGYyZGI7XG4kZmEtdmFyLW1pY3JvcGhvbmU6IFxcZjEzMDtcbiRmYS12YXItbWljcm9waG9uZS1hbHQ6IFxcZjNjOTtcbiRmYS12YXItbWljcm9waG9uZS1hbHQtc2xhc2g6IFxcZjUzOTtcbiRmYS12YXItbWljcm9waG9uZS1zbGFzaDogXFxmMTMxO1xuJGZhLXZhci1taWNyb3Bob25lLXN0YW5kOiBcXGY4Y2I7XG4kZmEtdmFyLW1pY3Jvc2NvcGU6IFxcZjYxMDtcbiRmYS12YXItbWljcm9zb2Z0OiBcXGYzY2E7XG4kZmEtdmFyLW1pY3Jvd2F2ZTogXFxlMDFiO1xuJGZhLXZhci1taW5kLXNoYXJlOiBcXGY2Nzc7XG4kZmEtdmFyLW1pbnVzOiBcXGYwNjg7XG4kZmEtdmFyLW1pbnVzLWNpcmNsZTogXFxmMDU2O1xuJGZhLXZhci1taW51cy1oZXhhZ29uOiBcXGYzMDc7XG4kZmEtdmFyLW1pbnVzLW9jdGFnb246IFxcZjMwODtcbiRmYS12YXItbWludXMtc3F1YXJlOiBcXGYxNDY7XG4kZmEtdmFyLW1pc3RsZXRvZTogXFxmN2I0O1xuJGZhLXZhci1taXR0ZW46IFxcZjdiNTtcbiRmYS12YXItbWl4OiBcXGYzY2I7XG4kZmEtdmFyLW1peGNsb3VkOiBcXGYyODk7XG4kZmEtdmFyLW1peGVyOiBcXGUwNTY7XG4kZmEtdmFyLW1penVuaTogXFxmM2NjO1xuJGZhLXZhci1tb2JpbGU6IFxcZjEwYjtcbiRmYS12YXItbW9iaWxlLWFsdDogXFxmM2NkO1xuJGZhLXZhci1tb2JpbGUtYW5kcm9pZDogXFxmM2NlO1xuJGZhLXZhci1tb2JpbGUtYW5kcm9pZC1hbHQ6IFxcZjNjZjtcbiRmYS12YXItbW9keDogXFxmMjg1O1xuJGZhLXZhci1tb25lcm86IFxcZjNkMDtcbiRmYS12YXItbW9uZXktYmlsbDogXFxmMGQ2O1xuJGZhLXZhci1tb25leS1iaWxsLWFsdDogXFxmM2QxO1xuJGZhLXZhci1tb25leS1iaWxsLXdhdmU6IFxcZjUzYTtcbiRmYS12YXItbW9uZXktYmlsbC13YXZlLWFsdDogXFxmNTNiO1xuJGZhLXZhci1tb25leS1jaGVjazogXFxmNTNjO1xuJGZhLXZhci1tb25leS1jaGVjay1hbHQ6IFxcZjUzZDtcbiRmYS12YXItbW9uZXktY2hlY2stZWRpdDogXFxmODcyO1xuJGZhLXZhci1tb25leS1jaGVjay1lZGl0LWFsdDogXFxmODczO1xuJGZhLXZhci1tb25pdG9yLWhlYXJ0LXJhdGU6IFxcZjYxMTtcbiRmYS12YXItbW9ua2V5OiBcXGY2ZmI7XG4kZmEtdmFyLW1vbnVtZW50OiBcXGY1YTY7XG4kZmEtdmFyLW1vb246IFxcZjE4NjtcbiRmYS12YXItbW9vbi1jbG91ZDogXFxmNzU0O1xuJGZhLXZhci1tb29uLXN0YXJzOiBcXGY3NTU7XG4kZmEtdmFyLW1vcnRhci1wZXN0bGU6IFxcZjVhNztcbiRmYS12YXItbW9zcXVlOiBcXGY2Nzg7XG4kZmEtdmFyLW1vdG9yY3ljbGU6IFxcZjIxYztcbiRmYS12YXItbW91bnRhaW46IFxcZjZmYztcbiRmYS12YXItbW91bnRhaW5zOiBcXGY2ZmQ7XG4kZmEtdmFyLW1vdXNlOiBcXGY4Y2M7XG4kZmEtdmFyLW1vdXNlLWFsdDogXFxmOGNkO1xuJGZhLXZhci1tb3VzZS1wb2ludGVyOiBcXGYyNDU7XG4kZmEtdmFyLW1wMy1wbGF5ZXI6IFxcZjhjZTtcbiRmYS12YXItbXVnOiBcXGY4NzQ7XG4kZmEtdmFyLW11Zy1ob3Q6IFxcZjdiNjtcbiRmYS12YXItbXVnLW1hcnNobWFsbG93czogXFxmN2I3O1xuJGZhLXZhci1tdWctdGVhOiBcXGY4NzU7XG4kZmEtdmFyLW11c2ljOiBcXGYwMDE7XG4kZmEtdmFyLW11c2ljLWFsdDogXFxmOGNmO1xuJGZhLXZhci1tdXNpYy1hbHQtc2xhc2g6IFxcZjhkMDtcbiRmYS12YXItbXVzaWMtc2xhc2g6IFxcZjhkMTtcbiRmYS12YXItbmFwc3RlcjogXFxmM2QyO1xuJGZhLXZhci1uYXJ3aGFsOiBcXGY2ZmU7XG4kZmEtdmFyLW5lb3M6IFxcZjYxMjtcbiRmYS12YXItbmV0d29yay13aXJlZDogXFxmNmZmO1xuJGZhLXZhci1uZXV0ZXI6IFxcZjIyYztcbiRmYS12YXItbmV3c3BhcGVyOiBcXGYxZWE7XG4kZmEtdmFyLW5pbWJscjogXFxmNWE4O1xuJGZhLXZhci1ub2RlOiBcXGY0MTk7XG4kZmEtdmFyLW5vZGUtanM6IFxcZjNkMztcbiRmYS12YXItbm90LWVxdWFsOiBcXGY1M2U7XG4kZmEtdmFyLW5vdGVzLW1lZGljYWw6IFxcZjQ4MTtcbiRmYS12YXItbnBtOiBcXGYzZDQ7XG4kZmEtdmFyLW5zODogXFxmM2Q1O1xuJGZhLXZhci1udXRyaXRpb25peDogXFxmM2Q2O1xuJGZhLXZhci1vYmplY3QtZ3JvdXA6IFxcZjI0NztcbiRmYS12YXItb2JqZWN0LXVuZ3JvdXA6IFxcZjI0ODtcbiRmYS12YXItb2N0YWdvbjogXFxmMzA2O1xuJGZhLXZhci1vY3RvcHVzLWRlcGxveTogXFxlMDgyO1xuJGZhLXZhci1vZG5va2xhc3NuaWtpOiBcXGYyNjM7XG4kZmEtdmFyLW9kbm9rbGFzc25pa2ktc3F1YXJlOiBcXGYyNjQ7XG4kZmEtdmFyLW9pbC1jYW46IFxcZjYxMztcbiRmYS12YXItb2lsLXRlbXA6IFxcZjYxNDtcbiRmYS12YXItb2xkLXJlcHVibGljOiBcXGY1MTA7XG4kZmEtdmFyLW9tOiBcXGY2Nzk7XG4kZmEtdmFyLW9tZWdhOiBcXGY2N2E7XG4kZmEtdmFyLW9wZW5jYXJ0OiBcXGYyM2Q7XG4kZmEtdmFyLW9wZW5pZDogXFxmMTliO1xuJGZhLXZhci1vcGVyYTogXFxmMjZhO1xuJGZhLXZhci1vcHRpbi1tb25zdGVyOiBcXGYyM2M7XG4kZmEtdmFyLW9yY2lkOiBcXGY4ZDI7XG4kZmEtdmFyLW9ybmFtZW50OiBcXGY3Yjg7XG4kZmEtdmFyLW9zaTogXFxmNDFhO1xuJGZhLXZhci1vdHRlcjogXFxmNzAwO1xuJGZhLXZhci1vdXRkZW50OiBcXGYwM2I7XG4kZmEtdmFyLW91dGxldDogXFxlMDFjO1xuJGZhLXZhci1vdmVuOiBcXGUwMWQ7XG4kZmEtdmFyLW92ZXJsaW5lOiBcXGY4NzY7XG4kZmEtdmFyLXBhZ2UtYnJlYWs6IFxcZjg3NztcbiRmYS12YXItcGFnZTQ6IFxcZjNkNztcbiRmYS12YXItcGFnZWxpbmVzOiBcXGYxOGM7XG4kZmEtdmFyLXBhZ2VyOiBcXGY4MTU7XG4kZmEtdmFyLXBhaW50LWJydXNoOiBcXGYxZmM7XG4kZmEtdmFyLXBhaW50LWJydXNoLWFsdDogXFxmNWE5O1xuJGZhLXZhci1wYWludC1yb2xsZXI6IFxcZjVhYTtcbiRmYS12YXItcGFsZXR0ZTogXFxmNTNmO1xuJGZhLXZhci1wYWxmZWQ6IFxcZjNkODtcbiRmYS12YXItcGFsbGV0OiBcXGY0ODI7XG4kZmEtdmFyLXBhbGxldC1hbHQ6IFxcZjQ4MztcbiRmYS12YXItcGFwZXItcGxhbmU6IFxcZjFkODtcbiRmYS12YXItcGFwZXJjbGlwOiBcXGYwYzY7XG4kZmEtdmFyLXBhcmFjaHV0ZS1ib3g6IFxcZjRjZDtcbiRmYS12YXItcGFyYWdyYXBoOiBcXGYxZGQ7XG4kZmEtdmFyLXBhcmFncmFwaC1ydGw6IFxcZjg3ODtcbiRmYS12YXItcGFya2luZzogXFxmNTQwO1xuJGZhLXZhci1wYXJraW5nLWNpcmNsZTogXFxmNjE1O1xuJGZhLXZhci1wYXJraW5nLWNpcmNsZS1zbGFzaDogXFxmNjE2O1xuJGZhLXZhci1wYXJraW5nLXNsYXNoOiBcXGY2MTc7XG4kZmEtdmFyLXBhc3Nwb3J0OiBcXGY1YWI7XG4kZmEtdmFyLXBhc3RhZmFyaWFuaXNtOiBcXGY2N2I7XG4kZmEtdmFyLXBhc3RlOiBcXGYwZWE7XG4kZmEtdmFyLXBhdHJlb246IFxcZjNkOTtcbiRmYS12YXItcGF1c2U6IFxcZjA0YztcbiRmYS12YXItcGF1c2UtY2lyY2xlOiBcXGYyOGI7XG4kZmEtdmFyLXBhdzogXFxmMWIwO1xuJGZhLXZhci1wYXctYWx0OiBcXGY3MDE7XG4kZmEtdmFyLXBhdy1jbGF3czogXFxmNzAyO1xuJGZhLXZhci1wYXlwYWw6IFxcZjFlZDtcbiRmYS12YXItcGVhY2U6IFxcZjY3YztcbiRmYS12YXItcGVnYXN1czogXFxmNzAzO1xuJGZhLXZhci1wZW46IFxcZjMwNDtcbiRmYS12YXItcGVuLWFsdDogXFxmMzA1O1xuJGZhLXZhci1wZW4tZmFuY3k6IFxcZjVhYztcbiRmYS12YXItcGVuLW5pYjogXFxmNWFkO1xuJGZhLXZhci1wZW4tc3F1YXJlOiBcXGYxNGI7XG4kZmEtdmFyLXBlbmNpbDogXFxmMDQwO1xuJGZhLXZhci1wZW5jaWwtYWx0OiBcXGYzMDM7XG4kZmEtdmFyLXBlbmNpbC1wYWludGJydXNoOiBcXGY2MTg7XG4kZmEtdmFyLXBlbmNpbC1ydWxlcjogXFxmNWFlO1xuJGZhLXZhci1wZW5uYW50OiBcXGY0NTY7XG4kZmEtdmFyLXBlbm55LWFyY2FkZTogXFxmNzA0O1xuJGZhLXZhci1wZW9wbGUtYXJyb3dzOiBcXGUwNjg7XG4kZmEtdmFyLXBlb3BsZS1jYXJyeTogXFxmNGNlO1xuJGZhLXZhci1wZXBwZXItaG90OiBcXGY4MTY7XG4kZmEtdmFyLXBlcmJ5dGU6IFxcZTA4MztcbiRmYS12YXItcGVyY2VudDogXFxmMjk1O1xuJGZhLXZhci1wZXJjZW50YWdlOiBcXGY1NDE7XG4kZmEtdmFyLXBlcmlzY29wZTogXFxmM2RhO1xuJGZhLXZhci1wZXJzb24tYm9vdGg6IFxcZjc1NjtcbiRmYS12YXItcGVyc29uLWNhcnJ5OiBcXGY0Y2Y7XG4kZmEtdmFyLXBlcnNvbi1kb2xseTogXFxmNGQwO1xuJGZhLXZhci1wZXJzb24tZG9sbHktZW1wdHk6IFxcZjRkMTtcbiRmYS12YXItcGVyc29uLXNpZ246IFxcZjc1NztcbiRmYS12YXItcGhhYnJpY2F0b3I6IFxcZjNkYjtcbiRmYS12YXItcGhvZW5peC1mcmFtZXdvcms6IFxcZjNkYztcbiRmYS12YXItcGhvZW5peC1zcXVhZHJvbjogXFxmNTExO1xuJGZhLXZhci1waG9uZTogXFxmMDk1O1xuJGZhLXZhci1waG9uZS1hbHQ6IFxcZjg3OTtcbiRmYS12YXItcGhvbmUtbGFwdG9wOiBcXGY4N2E7XG4kZmEtdmFyLXBob25lLW9mZmljZTogXFxmNjdkO1xuJGZhLXZhci1waG9uZS1wbHVzOiBcXGY0ZDI7XG4kZmEtdmFyLXBob25lLXJvdGFyeTogXFxmOGQzO1xuJGZhLXZhci1waG9uZS1zbGFzaDogXFxmM2RkO1xuJGZhLXZhci1waG9uZS1zcXVhcmU6IFxcZjA5ODtcbiRmYS12YXItcGhvbmUtc3F1YXJlLWFsdDogXFxmODdiO1xuJGZhLXZhci1waG9uZS12b2x1bWU6IFxcZjJhMDtcbiRmYS12YXItcGhvdG8tdmlkZW86IFxcZjg3YztcbiRmYS12YXItcGhwOiBcXGY0NTc7XG4kZmEtdmFyLXBpOiBcXGY2N2U7XG4kZmEtdmFyLXBpYW5vOiBcXGY4ZDQ7XG4kZmEtdmFyLXBpYW5vLWtleWJvYXJkOiBcXGY4ZDU7XG4kZmEtdmFyLXBpZTogXFxmNzA1O1xuJGZhLXZhci1waWVkLXBpcGVyOiBcXGYyYWU7XG4kZmEtdmFyLXBpZWQtcGlwZXItYWx0OiBcXGYxYTg7XG4kZmEtdmFyLXBpZWQtcGlwZXItaGF0OiBcXGY0ZTU7XG4kZmEtdmFyLXBpZWQtcGlwZXItcHA6IFxcZjFhNztcbiRmYS12YXItcGllZC1waXBlci1zcXVhcmU6IFxcZTAxZTtcbiRmYS12YXItcGlnOiBcXGY3MDY7XG4kZmEtdmFyLXBpZ2d5LWJhbms6IFxcZjRkMztcbiRmYS12YXItcGlsbHM6IFxcZjQ4NDtcbiRmYS12YXItcGludGVyZXN0OiBcXGYwZDI7XG4kZmEtdmFyLXBpbnRlcmVzdC1wOiBcXGYyMzE7XG4kZmEtdmFyLXBpbnRlcmVzdC1zcXVhcmU6IFxcZjBkMztcbiRmYS12YXItcGl6emE6IFxcZjgxNztcbiRmYS12YXItcGl6emEtc2xpY2U6IFxcZjgxODtcbiRmYS12YXItcGxhY2Utb2Ytd29yc2hpcDogXFxmNjdmO1xuJGZhLXZhci1wbGFuZTogXFxmMDcyO1xuJGZhLXZhci1wbGFuZS1hbHQ6IFxcZjNkZTtcbiRmYS12YXItcGxhbmUtYXJyaXZhbDogXFxmNWFmO1xuJGZhLXZhci1wbGFuZS1kZXBhcnR1cmU6IFxcZjViMDtcbiRmYS12YXItcGxhbmUtc2xhc2g6IFxcZTA2OTtcbiRmYS12YXItcGxhbmV0LW1vb246IFxcZTAxZjtcbiRmYS12YXItcGxhbmV0LXJpbmdlZDogXFxlMDIwO1xuJGZhLXZhci1wbGF5OiBcXGYwNGI7XG4kZmEtdmFyLXBsYXktY2lyY2xlOiBcXGYxNDQ7XG4kZmEtdmFyLXBsYXlzdGF0aW9uOiBcXGYzZGY7XG4kZmEtdmFyLXBsdWc6IFxcZjFlNjtcbiRmYS12YXItcGx1czogXFxmMDY3O1xuJGZhLXZhci1wbHVzLWNpcmNsZTogXFxmMDU1O1xuJGZhLXZhci1wbHVzLWhleGFnb246IFxcZjMwMDtcbiRmYS12YXItcGx1cy1vY3RhZ29uOiBcXGYzMDE7XG4kZmEtdmFyLXBsdXMtc3F1YXJlOiBcXGYwZmU7XG4kZmEtdmFyLXBvZGNhc3Q6IFxcZjJjZTtcbiRmYS12YXItcG9kaXVtOiBcXGY2ODA7XG4kZmEtdmFyLXBvZGl1bS1zdGFyOiBcXGY3NTg7XG4kZmEtdmFyLXBvbGljZS1ib3g6IFxcZTAyMTtcbiRmYS12YXItcG9sbDogXFxmNjgxO1xuJGZhLXZhci1wb2xsLWg6IFxcZjY4MjtcbiRmYS12YXItcG9sbC1wZW9wbGU6IFxcZjc1OTtcbiRmYS12YXItcG9vOiBcXGYyZmU7XG4kZmEtdmFyLXBvby1zdG9ybTogXFxmNzVhO1xuJGZhLXZhci1wb29wOiBcXGY2MTk7XG4kZmEtdmFyLXBvcGNvcm46IFxcZjgxOTtcbiRmYS12YXItcG9ydGFsLWVudGVyOiBcXGUwMjI7XG4kZmEtdmFyLXBvcnRhbC1leGl0OiBcXGUwMjM7XG4kZmEtdmFyLXBvcnRyYWl0OiBcXGYzZTA7XG4kZmEtdmFyLXBvdW5kLXNpZ246IFxcZjE1NDtcbiRmYS12YXItcG93ZXItb2ZmOiBcXGYwMTE7XG4kZmEtdmFyLXByYXk6IFxcZjY4MztcbiRmYS12YXItcHJheWluZy1oYW5kczogXFxmNjg0O1xuJGZhLXZhci1wcmVzY3JpcHRpb246IFxcZjViMTtcbiRmYS12YXItcHJlc2NyaXB0aW9uLWJvdHRsZTogXFxmNDg1O1xuJGZhLXZhci1wcmVzY3JpcHRpb24tYm90dGxlLWFsdDogXFxmNDg2O1xuJGZhLXZhci1wcmVzZW50YXRpb246IFxcZjY4NTtcbiRmYS12YXItcHJpbnQ6IFxcZjAyZjtcbiRmYS12YXItcHJpbnQtc2VhcmNoOiBcXGY4MWE7XG4kZmEtdmFyLXByaW50LXNsYXNoOiBcXGY2ODY7XG4kZmEtdmFyLXByb2NlZHVyZXM6IFxcZjQ4NztcbiRmYS12YXItcHJvZHVjdC1odW50OiBcXGYyODg7XG4kZmEtdmFyLXByb2plY3QtZGlhZ3JhbTogXFxmNTQyO1xuJGZhLXZhci1wcm9qZWN0b3I6IFxcZjhkNjtcbiRmYS12YXItcHVtcC1tZWRpY2FsOiBcXGUwNmE7XG4kZmEtdmFyLXB1bXAtc29hcDogXFxlMDZiO1xuJGZhLXZhci1wdW1wa2luOiBcXGY3MDc7XG4kZmEtdmFyLXB1c2hlZDogXFxmM2UxO1xuJGZhLXZhci1wdXp6bGUtcGllY2U6IFxcZjEyZTtcbiRmYS12YXItcHl0aG9uOiBcXGYzZTI7XG4kZmEtdmFyLXFxOiBcXGYxZDY7XG4kZmEtdmFyLXFyY29kZTogXFxmMDI5O1xuJGZhLXZhci1xdWVzdGlvbjogXFxmMTI4O1xuJGZhLXZhci1xdWVzdGlvbi1jaXJjbGU6IFxcZjA1OTtcbiRmYS12YXItcXVlc3Rpb24tc3F1YXJlOiBcXGYyZmQ7XG4kZmEtdmFyLXF1aWRkaXRjaDogXFxmNDU4O1xuJGZhLXZhci1xdWluc2NhcGU6IFxcZjQ1OTtcbiRmYS12YXItcXVvcmE6IFxcZjJjNDtcbiRmYS12YXItcXVvdGUtbGVmdDogXFxmMTBkO1xuJGZhLXZhci1xdW90ZS1yaWdodDogXFxmMTBlO1xuJGZhLXZhci1xdXJhbjogXFxmNjg3O1xuJGZhLXZhci1yLXByb2plY3Q6IFxcZjRmNztcbiRmYS12YXItcmFiYml0OiBcXGY3MDg7XG4kZmEtdmFyLXJhYmJpdC1mYXN0OiBcXGY3MDk7XG4kZmEtdmFyLXJhY3F1ZXQ6IFxcZjQ1YTtcbiRmYS12YXItcmFkYXI6IFxcZTAyNDtcbiRmYS12YXItcmFkaWF0aW9uOiBcXGY3Yjk7XG4kZmEtdmFyLXJhZGlhdGlvbi1hbHQ6IFxcZjdiYTtcbiRmYS12YXItcmFkaW86IFxcZjhkNztcbiRmYS12YXItcmFkaW8tYWx0OiBcXGY4ZDg7XG4kZmEtdmFyLXJhaW5ib3c6IFxcZjc1YjtcbiRmYS12YXItcmFpbmRyb3BzOiBcXGY3NWM7XG4kZmEtdmFyLXJhbTogXFxmNzBhO1xuJGZhLXZhci1yYW1wLWxvYWRpbmc6IFxcZjRkNDtcbiRmYS12YXItcmFuZG9tOiBcXGYwNzQ7XG4kZmEtdmFyLXJhc3BiZXJyeS1waTogXFxmN2JiO1xuJGZhLXZhci1yYXZlbHJ5OiBcXGYyZDk7XG4kZmEtdmFyLXJheWd1bjogXFxlMDI1O1xuJGZhLXZhci1yZWFjdDogXFxmNDFiO1xuJGZhLXZhci1yZWFjdGV1cm9wZTogXFxmNzVkO1xuJGZhLXZhci1yZWFkbWU6IFxcZjRkNTtcbiRmYS12YXItcmViZWw6IFxcZjFkMDtcbiRmYS12YXItcmVjZWlwdDogXFxmNTQzO1xuJGZhLXZhci1yZWNvcmQtdmlueWw6IFxcZjhkOTtcbiRmYS12YXItcmVjdGFuZ2xlLWxhbmRzY2FwZTogXFxmMmZhO1xuJGZhLXZhci1yZWN0YW5nbGUtcG9ydHJhaXQ6IFxcZjJmYjtcbiRmYS12YXItcmVjdGFuZ2xlLXdpZGU6IFxcZjJmYztcbiRmYS12YXItcmVjeWNsZTogXFxmMWI4O1xuJGZhLXZhci1yZWQtcml2ZXI6IFxcZjNlMztcbiRmYS12YXItcmVkZGl0OiBcXGYxYTE7XG4kZmEtdmFyLXJlZGRpdC1hbGllbjogXFxmMjgxO1xuJGZhLXZhci1yZWRkaXQtc3F1YXJlOiBcXGYxYTI7XG4kZmEtdmFyLXJlZGhhdDogXFxmN2JjO1xuJGZhLXZhci1yZWRvOiBcXGYwMWU7XG4kZmEtdmFyLXJlZG8tYWx0OiBcXGYyZjk7XG4kZmEtdmFyLXJlZnJpZ2VyYXRvcjogXFxlMDI2O1xuJGZhLXZhci1yZWdpc3RlcmVkOiBcXGYyNWQ7XG4kZmEtdmFyLXJlbW92ZS1mb3JtYXQ6IFxcZjg3ZDtcbiRmYS12YXItcmVucmVuOiBcXGYxOGI7XG4kZmEtdmFyLXJlcGVhdDogXFxmMzYzO1xuJGZhLXZhci1yZXBlYXQtMTogXFxmMzY1O1xuJGZhLXZhci1yZXBlYXQtMS1hbHQ6IFxcZjM2NjtcbiRmYS12YXItcmVwZWF0LWFsdDogXFxmMzY0O1xuJGZhLXZhci1yZXBseTogXFxmM2U1O1xuJGZhLXZhci1yZXBseS1hbGw6IFxcZjEyMjtcbiRmYS12YXItcmVwbHlkOiBcXGYzZTY7XG4kZmEtdmFyLXJlcHVibGljYW46IFxcZjc1ZTtcbiRmYS12YXItcmVzZWFyY2hnYXRlOiBcXGY0Zjg7XG4kZmEtdmFyLXJlc29sdmluZzogXFxmM2U3O1xuJGZhLXZhci1yZXN0cm9vbTogXFxmN2JkO1xuJGZhLXZhci1yZXR3ZWV0OiBcXGYwNzk7XG4kZmEtdmFyLXJldHdlZXQtYWx0OiBcXGYzNjE7XG4kZmEtdmFyLXJldjogXFxmNWIyO1xuJGZhLXZhci1yaWJib246IFxcZjRkNjtcbiRmYS12YXItcmluZzogXFxmNzBiO1xuJGZhLXZhci1yaW5ncy13ZWRkaW5nOiBcXGY4MWI7XG4kZmEtdmFyLXJvYWQ6IFxcZjAxODtcbiRmYS12YXItcm9ib3Q6IFxcZjU0NDtcbiRmYS12YXItcm9ja2V0OiBcXGYxMzU7XG4kZmEtdmFyLXJvY2tldC1sYXVuY2g6IFxcZTAyNztcbiRmYS12YXItcm9ja2V0Y2hhdDogXFxmM2U4O1xuJGZhLXZhci1yb2Nrcm1zOiBcXGYzZTk7XG4kZmEtdmFyLXJvdXRlOiBcXGY0ZDc7XG4kZmEtdmFyLXJvdXRlLWhpZ2h3YXk6IFxcZjYxYTtcbiRmYS12YXItcm91dGUtaW50ZXJzdGF0ZTogXFxmNjFiO1xuJGZhLXZhci1yb3V0ZXI6IFxcZjhkYTtcbiRmYS12YXItcnNzOiBcXGYwOWU7XG4kZmEtdmFyLXJzcy1zcXVhcmU6IFxcZjE0MztcbiRmYS12YXItcnVibGUtc2lnbjogXFxmMTU4O1xuJGZhLXZhci1ydWxlcjogXFxmNTQ1O1xuJGZhLXZhci1ydWxlci1jb21iaW5lZDogXFxmNTQ2O1xuJGZhLXZhci1ydWxlci1ob3Jpem9udGFsOiBcXGY1NDc7XG4kZmEtdmFyLXJ1bGVyLXRyaWFuZ2xlOiBcXGY2MWM7XG4kZmEtdmFyLXJ1bGVyLXZlcnRpY2FsOiBcXGY1NDg7XG4kZmEtdmFyLXJ1bm5pbmc6IFxcZjcwYztcbiRmYS12YXItcnVwZWUtc2lnbjogXFxmMTU2O1xuJGZhLXZhci1ydXN0OiBcXGUwN2E7XG4kZmEtdmFyLXJ2OiBcXGY3YmU7XG4kZmEtdmFyLXNhY2s6IFxcZjgxYztcbiRmYS12YXItc2Fjay1kb2xsYXI6IFxcZjgxZDtcbiRmYS12YXItc2FkLWNyeTogXFxmNWIzO1xuJGZhLXZhci1zYWQtdGVhcjogXFxmNWI0O1xuJGZhLXZhci1zYWZhcmk6IFxcZjI2NztcbiRmYS12YXItc2FsYWQ6IFxcZjgxZTtcbiRmYS12YXItc2FsZXNmb3JjZTogXFxmODNiO1xuJGZhLXZhci1zYW5kd2ljaDogXFxmODFmO1xuJGZhLXZhci1zYXNzOiBcXGY0MWU7XG4kZmEtdmFyLXNhdGVsbGl0ZTogXFxmN2JmO1xuJGZhLXZhci1zYXRlbGxpdGUtZGlzaDogXFxmN2MwO1xuJGZhLXZhci1zYXVzYWdlOiBcXGY4MjA7XG4kZmEtdmFyLXNhdmU6IFxcZjBjNztcbiRmYS12YXItc2F4LWhvdDogXFxmOGRiO1xuJGZhLXZhci1zYXhvcGhvbmU6IFxcZjhkYztcbiRmYS12YXItc2NhbHBlbDogXFxmNjFkO1xuJGZhLXZhci1zY2FscGVsLXBhdGg6IFxcZjYxZTtcbiRmYS12YXItc2Nhbm5lcjogXFxmNDg4O1xuJGZhLXZhci1zY2FubmVyLWltYWdlOiBcXGY4ZjM7XG4kZmEtdmFyLXNjYW5uZXIta2V5Ym9hcmQ6IFxcZjQ4OTtcbiRmYS12YXItc2Nhbm5lci10b3VjaHNjcmVlbjogXFxmNDhhO1xuJGZhLXZhci1zY2FyZWNyb3c6IFxcZjcwZDtcbiRmYS12YXItc2NhcmY6IFxcZjdjMTtcbiRmYS12YXItc2NobGl4OiBcXGYzZWE7XG4kZmEtdmFyLXNjaG9vbDogXFxmNTQ5O1xuJGZhLXZhci1zY3Jld2RyaXZlcjogXFxmNTRhO1xuJGZhLXZhci1zY3JpYmQ6IFxcZjI4YTtcbiRmYS12YXItc2Nyb2xsOiBcXGY3MGU7XG4kZmEtdmFyLXNjcm9sbC1vbGQ6IFxcZjcwZjtcbiRmYS12YXItc2NydWJiZXI6IFxcZjJmODtcbiRmYS12YXItc2N5dGhlOiBcXGY3MTA7XG4kZmEtdmFyLXNkLWNhcmQ6IFxcZjdjMjtcbiRmYS12YXItc2VhcmNoOiBcXGYwMDI7XG4kZmEtdmFyLXNlYXJjaC1kb2xsYXI6IFxcZjY4ODtcbiRmYS12YXItc2VhcmNoLWxvY2F0aW9uOiBcXGY2ODk7XG4kZmEtdmFyLXNlYXJjaC1taW51czogXFxmMDEwO1xuJGZhLXZhci1zZWFyY2gtcGx1czogXFxmMDBlO1xuJGZhLXZhci1zZWFyY2hlbmdpbjogXFxmM2ViO1xuJGZhLXZhci1zZWVkbGluZzogXFxmNGQ4O1xuJGZhLXZhci1zZWxsY2FzdDogXFxmMmRhO1xuJGZhLXZhci1zZWxsc3k6IFxcZjIxMztcbiRmYS12YXItc2VuZC1iYWNrOiBcXGY4N2U7XG4kZmEtdmFyLXNlbmQtYmFja3dhcmQ6IFxcZjg3ZjtcbiRmYS12YXItc2Vuc29yOiBcXGUwMjg7XG4kZmEtdmFyLXNlbnNvci1hbGVydDogXFxlMDI5O1xuJGZhLXZhci1zZW5zb3ItZmlyZTogXFxlMDJhO1xuJGZhLXZhci1zZW5zb3Itb246IFxcZTAyYjtcbiRmYS12YXItc2Vuc29yLXNtb2tlOiBcXGUwMmM7XG4kZmEtdmFyLXNlcnZlcjogXFxmMjMzO1xuJGZhLXZhci1zZXJ2aWNlc3RhY2s6IFxcZjNlYztcbiRmYS12YXItc2hhcGVzOiBcXGY2MWY7XG4kZmEtdmFyLXNoYXJlOiBcXGYwNjQ7XG4kZmEtdmFyLXNoYXJlLWFsbDogXFxmMzY3O1xuJGZhLXZhci1zaGFyZS1hbHQ6IFxcZjFlMDtcbiRmYS12YXItc2hhcmUtYWx0LXNxdWFyZTogXFxmMWUxO1xuJGZhLXZhci1zaGFyZS1zcXVhcmU6IFxcZjE0ZDtcbiRmYS12YXItc2hlZXA6IFxcZjcxMTtcbiRmYS12YXItc2hla2VsLXNpZ246IFxcZjIwYjtcbiRmYS12YXItc2hpZWxkOiBcXGYxMzI7XG4kZmEtdmFyLXNoaWVsZC1hbHQ6IFxcZjNlZDtcbiRmYS12YXItc2hpZWxkLWNoZWNrOiBcXGYyZjc7XG4kZmEtdmFyLXNoaWVsZC1jcm9zczogXFxmNzEyO1xuJGZhLXZhci1zaGllbGQtdmlydXM6IFxcZTA2YztcbiRmYS12YXItc2hpcDogXFxmMjFhO1xuJGZhLXZhci1zaGlwcGluZy1mYXN0OiBcXGY0OGI7XG4kZmEtdmFyLXNoaXBwaW5nLXRpbWVkOiBcXGY0OGM7XG4kZmEtdmFyLXNoaXJ0c2luYnVsazogXFxmMjE0O1xuJGZhLXZhci1zaGlzaC1rZWJhYjogXFxmODIxO1xuJGZhLXZhci1zaG9lLXByaW50czogXFxmNTRiO1xuJGZhLXZhci1zaG9waWZ5OiBcXGUwNTc7XG4kZmEtdmFyLXNob3BwaW5nLWJhZzogXFxmMjkwO1xuJGZhLXZhci1zaG9wcGluZy1iYXNrZXQ6IFxcZjI5MTtcbiRmYS12YXItc2hvcHBpbmctY2FydDogXFxmMDdhO1xuJGZhLXZhci1zaG9wd2FyZTogXFxmNWI1O1xuJGZhLXZhci1zaG92ZWw6IFxcZjcxMztcbiRmYS12YXItc2hvdmVsLXNub3c6IFxcZjdjMztcbiRmYS12YXItc2hvd2VyOiBcXGYyY2M7XG4kZmEtdmFyLXNocmVkZGVyOiBcXGY2OGE7XG4kZmEtdmFyLXNodXR0bGUtdmFuOiBcXGY1YjY7XG4kZmEtdmFyLXNodXR0bGVjb2NrOiBcXGY0NWI7XG4kZmEtdmFyLXNpY2tsZTogXFxmODIyO1xuJGZhLXZhci1zaWdtYTogXFxmNjhiO1xuJGZhLXZhci1zaWduOiBcXGY0ZDk7XG4kZmEtdmFyLXNpZ24taW46IFxcZjA5MDtcbiRmYS12YXItc2lnbi1pbi1hbHQ6IFxcZjJmNjtcbiRmYS12YXItc2lnbi1sYW5ndWFnZTogXFxmMmE3O1xuJGZhLXZhci1zaWduLW91dDogXFxmMDhiO1xuJGZhLXZhci1zaWduLW91dC1hbHQ6IFxcZjJmNTtcbiRmYS12YXItc2lnbmFsOiBcXGYwMTI7XG4kZmEtdmFyLXNpZ25hbC0xOiBcXGY2OGM7XG4kZmEtdmFyLXNpZ25hbC0yOiBcXGY2OGQ7XG4kZmEtdmFyLXNpZ25hbC0zOiBcXGY2OGU7XG4kZmEtdmFyLXNpZ25hbC00OiBcXGY2OGY7XG4kZmEtdmFyLXNpZ25hbC1hbHQ6IFxcZjY5MDtcbiRmYS12YXItc2lnbmFsLWFsdC0xOiBcXGY2OTE7XG4kZmEtdmFyLXNpZ25hbC1hbHQtMjogXFxmNjkyO1xuJGZhLXZhci1zaWduYWwtYWx0LTM6IFxcZjY5MztcbiRmYS12YXItc2lnbmFsLWFsdC1zbGFzaDogXFxmNjk0O1xuJGZhLXZhci1zaWduYWwtc2xhc2g6IFxcZjY5NTtcbiRmYS12YXItc2lnbmFsLXN0cmVhbTogXFxmOGRkO1xuJGZhLXZhci1zaWduYXR1cmU6IFxcZjViNztcbiRmYS12YXItc2ltLWNhcmQ6IFxcZjdjNDtcbiRmYS12YXItc2ltcGx5YnVpbHQ6IFxcZjIxNTtcbiRmYS12YXItc2luazogXFxlMDZkO1xuJGZhLXZhci1zaXJlbjogXFxlMDJkO1xuJGZhLXZhci1zaXJlbi1vbjogXFxlMDJlO1xuJGZhLXZhci1zaXN0cml4OiBcXGYzZWU7XG4kZmEtdmFyLXNpdGVtYXA6IFxcZjBlODtcbiRmYS12YXItc2l0aDogXFxmNTEyO1xuJGZhLXZhci1za2F0aW5nOiBcXGY3YzU7XG4kZmEtdmFyLXNrZWxldG9uOiBcXGY2MjA7XG4kZmEtdmFyLXNrZXRjaDogXFxmN2M2O1xuJGZhLXZhci1za2ktanVtcDogXFxmN2M3O1xuJGZhLXZhci1za2ktbGlmdDogXFxmN2M4O1xuJGZhLXZhci1za2lpbmc6IFxcZjdjOTtcbiRmYS12YXItc2tpaW5nLW5vcmRpYzogXFxmN2NhO1xuJGZhLXZhci1za3VsbDogXFxmNTRjO1xuJGZhLXZhci1za3VsbC1jb3c6IFxcZjhkZTtcbiRmYS12YXItc2t1bGwtY3Jvc3Nib25lczogXFxmNzE0O1xuJGZhLXZhci1za3lhdGxhczogXFxmMjE2O1xuJGZhLXZhci1za3lwZTogXFxmMTdlO1xuJGZhLXZhci1zbGFjazogXFxmMTk4O1xuJGZhLXZhci1zbGFjay1oYXNoOiBcXGYzZWY7XG4kZmEtdmFyLXNsYXNoOiBcXGY3MTU7XG4kZmEtdmFyLXNsZWRkaW5nOiBcXGY3Y2I7XG4kZmEtdmFyLXNsZWlnaDogXFxmN2NjO1xuJGZhLXZhci1zbGlkZXJzLWg6IFxcZjFkZTtcbiRmYS12YXItc2xpZGVycy1oLXNxdWFyZTogXFxmM2YwO1xuJGZhLXZhci1zbGlkZXJzLXY6IFxcZjNmMTtcbiRmYS12YXItc2xpZGVycy12LXNxdWFyZTogXFxmM2YyO1xuJGZhLXZhci1zbGlkZXNoYXJlOiBcXGYxZTc7XG4kZmEtdmFyLXNtaWxlOiBcXGYxMTg7XG4kZmEtdmFyLXNtaWxlLWJlYW06IFxcZjViODtcbiRmYS12YXItc21pbGUtcGx1czogXFxmNWI5O1xuJGZhLXZhci1zbWlsZS13aW5rOiBcXGY0ZGE7XG4kZmEtdmFyLXNtb2c6IFxcZjc1ZjtcbiRmYS12YXItc21va2U6IFxcZjc2MDtcbiRmYS12YXItc21va2luZzogXFxmNDhkO1xuJGZhLXZhci1zbW9raW5nLWJhbjogXFxmNTRkO1xuJGZhLXZhci1zbXM6IFxcZjdjZDtcbiRmYS12YXItc25ha2U6IFxcZjcxNjtcbiRmYS12YXItc25hcGNoYXQ6IFxcZjJhYjtcbiRmYS12YXItc25hcGNoYXQtZ2hvc3Q6IFxcZjJhYztcbiRmYS12YXItc25hcGNoYXQtc3F1YXJlOiBcXGYyYWQ7XG4kZmEtdmFyLXNub296ZTogXFxmODgwO1xuJGZhLXZhci1zbm93LWJsb3dpbmc6IFxcZjc2MTtcbiRmYS12YXItc25vd2JvYXJkaW5nOiBcXGY3Y2U7XG4kZmEtdmFyLXNub3dmbGFrZTogXFxmMmRjO1xuJGZhLXZhci1zbm93Zmxha2VzOiBcXGY3Y2Y7XG4kZmEtdmFyLXNub3dtYW46IFxcZjdkMDtcbiRmYS12YXItc25vd21vYmlsZTogXFxmN2QxO1xuJGZhLXZhci1zbm93cGxvdzogXFxmN2QyO1xuJGZhLXZhci1zb2FwOiBcXGUwNmU7XG4kZmEtdmFyLXNvY2tzOiBcXGY2OTY7XG4kZmEtdmFyLXNvbGFyLXBhbmVsOiBcXGY1YmE7XG4kZmEtdmFyLXNvbGFyLXN5c3RlbTogXFxlMDJmO1xuJGZhLXZhci1zb3J0OiBcXGYwZGM7XG4kZmEtdmFyLXNvcnQtYWxwaGEtZG93bjogXFxmMTVkO1xuJGZhLXZhci1zb3J0LWFscGhhLWRvd24tYWx0OiBcXGY4ODE7XG4kZmEtdmFyLXNvcnQtYWxwaGEtdXA6IFxcZjE1ZTtcbiRmYS12YXItc29ydC1hbHBoYS11cC1hbHQ6IFxcZjg4MjtcbiRmYS12YXItc29ydC1hbHQ6IFxcZjg4MztcbiRmYS12YXItc29ydC1hbW91bnQtZG93bjogXFxmMTYwO1xuJGZhLXZhci1zb3J0LWFtb3VudC1kb3duLWFsdDogXFxmODg0O1xuJGZhLXZhci1zb3J0LWFtb3VudC11cDogXFxmMTYxO1xuJGZhLXZhci1zb3J0LWFtb3VudC11cC1hbHQ6IFxcZjg4NTtcbiRmYS12YXItc29ydC1jaXJjbGU6IFxcZTAzMDtcbiRmYS12YXItc29ydC1jaXJjbGUtZG93bjogXFxlMDMxO1xuJGZhLXZhci1zb3J0LWNpcmNsZS11cDogXFxlMDMyO1xuJGZhLXZhci1zb3J0LWRvd246IFxcZjBkZDtcbiRmYS12YXItc29ydC1udW1lcmljLWRvd246IFxcZjE2MjtcbiRmYS12YXItc29ydC1udW1lcmljLWRvd24tYWx0OiBcXGY4ODY7XG4kZmEtdmFyLXNvcnQtbnVtZXJpYy11cDogXFxmMTYzO1xuJGZhLXZhci1zb3J0LW51bWVyaWMtdXAtYWx0OiBcXGY4ODc7XG4kZmEtdmFyLXNvcnQtc2hhcGVzLWRvd246IFxcZjg4ODtcbiRmYS12YXItc29ydC1zaGFwZXMtZG93bi1hbHQ6IFxcZjg4OTtcbiRmYS12YXItc29ydC1zaGFwZXMtdXA6IFxcZjg4YTtcbiRmYS12YXItc29ydC1zaGFwZXMtdXAtYWx0OiBcXGY4OGI7XG4kZmEtdmFyLXNvcnQtc2l6ZS1kb3duOiBcXGY4OGM7XG4kZmEtdmFyLXNvcnQtc2l6ZS1kb3duLWFsdDogXFxmODhkO1xuJGZhLXZhci1zb3J0LXNpemUtdXA6IFxcZjg4ZTtcbiRmYS12YXItc29ydC1zaXplLXVwLWFsdDogXFxmODhmO1xuJGZhLXZhci1zb3J0LXVwOiBcXGYwZGU7XG4kZmEtdmFyLXNvdW5kY2xvdWQ6IFxcZjFiZTtcbiRmYS12YXItc291cDogXFxmODIzO1xuJGZhLXZhci1zb3VyY2V0cmVlOiBcXGY3ZDM7XG4kZmEtdmFyLXNwYTogXFxmNWJiO1xuJGZhLXZhci1zcGFjZS1zaHV0dGxlOiBcXGYxOTc7XG4kZmEtdmFyLXNwYWNlLXN0YXRpb24tbW9vbjogXFxlMDMzO1xuJGZhLXZhci1zcGFjZS1zdGF0aW9uLW1vb24tYWx0OiBcXGUwMzQ7XG4kZmEtdmFyLXNwYWRlOiBcXGYyZjQ7XG4kZmEtdmFyLXNwYXJrbGVzOiBcXGY4OTA7XG4kZmEtdmFyLXNwZWFrYXA6IFxcZjNmMztcbiRmYS12YXItc3BlYWtlcjogXFxmOGRmO1xuJGZhLXZhci1zcGVha2VyLWRlY2s6IFxcZjgzYztcbiRmYS12YXItc3BlYWtlcnM6IFxcZjhlMDtcbiRmYS12YXItc3BlbGwtY2hlY2s6IFxcZjg5MTtcbiRmYS12YXItc3BpZGVyOiBcXGY3MTc7XG4kZmEtdmFyLXNwaWRlci1ibGFjay13aWRvdzogXFxmNzE4O1xuJGZhLXZhci1zcGlkZXItd2ViOiBcXGY3MTk7XG4kZmEtdmFyLXNwaW5uZXI6IFxcZjExMDtcbiRmYS12YXItc3Bpbm5lci10aGlyZDogXFxmM2Y0O1xuJGZhLXZhci1zcGxvdGNoOiBcXGY1YmM7XG4kZmEtdmFyLXNwb3RpZnk6IFxcZjFiYztcbiRmYS12YXItc3ByYXktY2FuOiBcXGY1YmQ7XG4kZmEtdmFyLXNwcmlua2xlcjogXFxlMDM1O1xuJGZhLXZhci1zcXVhcmU6IFxcZjBjODtcbiRmYS12YXItc3F1YXJlLWZ1bGw6IFxcZjQ1YztcbiRmYS12YXItc3F1YXJlLXJvb3Q6IFxcZjY5NztcbiRmYS12YXItc3F1YXJlLXJvb3QtYWx0OiBcXGY2OTg7XG4kZmEtdmFyLXNxdWFyZXNwYWNlOiBcXGY1YmU7XG4kZmEtdmFyLXNxdWlycmVsOiBcXGY3MWE7XG4kZmEtdmFyLXN0YWNrLWV4Y2hhbmdlOiBcXGYxOGQ7XG4kZmEtdmFyLXN0YWNrLW92ZXJmbG93OiBcXGYxNmM7XG4kZmEtdmFyLXN0YWNrcGF0aDogXFxmODQyO1xuJGZhLXZhci1zdGFmZjogXFxmNzFiO1xuJGZhLXZhci1zdGFtcDogXFxmNWJmO1xuJGZhLXZhci1zdGFyOiBcXGYwMDU7XG4kZmEtdmFyLXN0YXItYW5kLWNyZXNjZW50OiBcXGY2OTk7XG4kZmEtdmFyLXN0YXItY2hyaXN0bWFzOiBcXGY3ZDQ7XG4kZmEtdmFyLXN0YXItZXhjbGFtYXRpb246IFxcZjJmMztcbiRmYS12YXItc3Rhci1oYWxmOiBcXGYwODk7XG4kZmEtdmFyLXN0YXItaGFsZi1hbHQ6IFxcZjVjMDtcbiRmYS12YXItc3Rhci1vZi1kYXZpZDogXFxmNjlhO1xuJGZhLXZhci1zdGFyLW9mLWxpZmU6IFxcZjYyMTtcbiRmYS12YXItc3Rhci1zaG9vdGluZzogXFxlMDM2O1xuJGZhLXZhci1zdGFyZmlnaHRlcjogXFxlMDM3O1xuJGZhLXZhci1zdGFyZmlnaHRlci1hbHQ6IFxcZTAzODtcbiRmYS12YXItc3RhcnM6IFxcZjc2MjtcbiRmYS12YXItc3RhcnNoaXA6IFxcZTAzOTtcbiRmYS12YXItc3RhcnNoaXAtZnJlaWdodGVyOiBcXGUwM2E7XG4kZmEtdmFyLXN0YXlsaW5rZWQ6IFxcZjNmNTtcbiRmYS12YXItc3RlYWs6IFxcZjgyNDtcbiRmYS12YXItc3RlYW06IFxcZjFiNjtcbiRmYS12YXItc3RlYW0tc3F1YXJlOiBcXGYxYjc7XG4kZmEtdmFyLXN0ZWFtLXN5bWJvbDogXFxmM2Y2O1xuJGZhLXZhci1zdGVlcmluZy13aGVlbDogXFxmNjIyO1xuJGZhLXZhci1zdGVwLWJhY2t3YXJkOiBcXGYwNDg7XG4kZmEtdmFyLXN0ZXAtZm9yd2FyZDogXFxmMDUxO1xuJGZhLXZhci1zdGV0aG9zY29wZTogXFxmMGYxO1xuJGZhLXZhci1zdGlja2VyLW11bGU6IFxcZjNmNztcbiRmYS12YXItc3RpY2t5LW5vdGU6IFxcZjI0OTtcbiRmYS12YXItc3RvY2tpbmc6IFxcZjdkNTtcbiRmYS12YXItc3RvbWFjaDogXFxmNjIzO1xuJGZhLXZhci1zdG9wOiBcXGYwNGQ7XG4kZmEtdmFyLXN0b3AtY2lyY2xlOiBcXGYyOGQ7XG4kZmEtdmFyLXN0b3B3YXRjaDogXFxmMmYyO1xuJGZhLXZhci1zdG9wd2F0Y2gtMjA6IFxcZTA2ZjtcbiRmYS12YXItc3RvcmU6IFxcZjU0ZTtcbiRmYS12YXItc3RvcmUtYWx0OiBcXGY1NGY7XG4kZmEtdmFyLXN0b3JlLWFsdC1zbGFzaDogXFxlMDcwO1xuJGZhLXZhci1zdG9yZS1zbGFzaDogXFxlMDcxO1xuJGZhLXZhci1zdHJhdmE6IFxcZjQyODtcbiRmYS12YXItc3RyZWFtOiBcXGY1NTA7XG4kZmEtdmFyLXN0cmVldC12aWV3OiBcXGYyMWQ7XG4kZmEtdmFyLXN0cmV0Y2hlcjogXFxmODI1O1xuJGZhLXZhci1zdHJpa2V0aHJvdWdoOiBcXGYwY2M7XG4kZmEtdmFyLXN0cmlwZTogXFxmNDI5O1xuJGZhLXZhci1zdHJpcGUtczogXFxmNDJhO1xuJGZhLXZhci1zdHJvb3B3YWZlbDogXFxmNTUxO1xuJGZhLXZhci1zdHVkaW92aW5hcmk6IFxcZjNmODtcbiRmYS12YXItc3R1bWJsZXVwb246IFxcZjFhNDtcbiRmYS12YXItc3R1bWJsZXVwb24tY2lyY2xlOiBcXGYxYTM7XG4kZmEtdmFyLXN1YnNjcmlwdDogXFxmMTJjO1xuJGZhLXZhci1zdWJ3YXk6IFxcZjIzOTtcbiRmYS12YXItc3VpdGNhc2U6IFxcZjBmMjtcbiRmYS12YXItc3VpdGNhc2Utcm9sbGluZzogXFxmNWMxO1xuJGZhLXZhci1zdW46IFxcZjE4NTtcbiRmYS12YXItc3VuLWNsb3VkOiBcXGY3NjM7XG4kZmEtdmFyLXN1bi1kdXN0OiBcXGY3NjQ7XG4kZmEtdmFyLXN1bi1oYXplOiBcXGY3NjU7XG4kZmEtdmFyLXN1bmdsYXNzZXM6IFxcZjg5MjtcbiRmYS12YXItc3VucmlzZTogXFxmNzY2O1xuJGZhLXZhci1zdW5zZXQ6IFxcZjc2NztcbiRmYS12YXItc3VwZXJwb3dlcnM6IFxcZjJkZDtcbiRmYS12YXItc3VwZXJzY3JpcHQ6IFxcZjEyYjtcbiRmYS12YXItc3VwcGxlOiBcXGYzZjk7XG4kZmEtdmFyLXN1cnByaXNlOiBcXGY1YzI7XG4kZmEtdmFyLXN1c2U6IFxcZjdkNjtcbiRmYS12YXItc3dhdGNoYm9vazogXFxmNWMzO1xuJGZhLXZhci1zd2lmdDogXFxmOGUxO1xuJGZhLXZhci1zd2ltbWVyOiBcXGY1YzQ7XG4kZmEtdmFyLXN3aW1taW5nLXBvb2w6IFxcZjVjNTtcbiRmYS12YXItc3dvcmQ6IFxcZjcxYztcbiRmYS12YXItc3dvcmQtbGFzZXI6IFxcZTAzYjtcbiRmYS12YXItc3dvcmQtbGFzZXItYWx0OiBcXGUwM2M7XG4kZmEtdmFyLXN3b3JkczogXFxmNzFkO1xuJGZhLXZhci1zd29yZHMtbGFzZXI6IFxcZTAzZDtcbiRmYS12YXItc3ltZm9ueTogXFxmODNkO1xuJGZhLXZhci1zeW5hZ29ndWU6IFxcZjY5YjtcbiRmYS12YXItc3luYzogXFxmMDIxO1xuJGZhLXZhci1zeW5jLWFsdDogXFxmMmYxO1xuJGZhLXZhci1zeXJpbmdlOiBcXGY0OGU7XG4kZmEtdmFyLXRhYmxlOiBcXGYwY2U7XG4kZmEtdmFyLXRhYmxlLXRlbm5pczogXFxmNDVkO1xuJGZhLXZhci10YWJsZXQ6IFxcZjEwYTtcbiRmYS12YXItdGFibGV0LWFsdDogXFxmM2ZhO1xuJGZhLXZhci10YWJsZXQtYW5kcm9pZDogXFxmM2ZiO1xuJGZhLXZhci10YWJsZXQtYW5kcm9pZC1hbHQ6IFxcZjNmYztcbiRmYS12YXItdGFibGV0LXJ1Z2dlZDogXFxmNDhmO1xuJGZhLXZhci10YWJsZXRzOiBcXGY0OTA7XG4kZmEtdmFyLXRhY2hvbWV0ZXI6IFxcZjBlNDtcbiRmYS12YXItdGFjaG9tZXRlci1hbHQ6IFxcZjNmZDtcbiRmYS12YXItdGFjaG9tZXRlci1hbHQtYXZlcmFnZTogXFxmNjI0O1xuJGZhLXZhci10YWNob21ldGVyLWFsdC1mYXN0OiBcXGY2MjU7XG4kZmEtdmFyLXRhY2hvbWV0ZXItYWx0LWZhc3Rlc3Q6IFxcZjYyNjtcbiRmYS12YXItdGFjaG9tZXRlci1hbHQtc2xvdzogXFxmNjI3O1xuJGZhLXZhci10YWNob21ldGVyLWFsdC1zbG93ZXN0OiBcXGY2Mjg7XG4kZmEtdmFyLXRhY2hvbWV0ZXItYXZlcmFnZTogXFxmNjI5O1xuJGZhLXZhci10YWNob21ldGVyLWZhc3Q6IFxcZjYyYTtcbiRmYS12YXItdGFjaG9tZXRlci1mYXN0ZXN0OiBcXGY2MmI7XG4kZmEtdmFyLXRhY2hvbWV0ZXItc2xvdzogXFxmNjJjO1xuJGZhLXZhci10YWNob21ldGVyLXNsb3dlc3Q6IFxcZjYyZDtcbiRmYS12YXItdGFjbzogXFxmODI2O1xuJGZhLXZhci10YWc6IFxcZjAyYjtcbiRmYS12YXItdGFnczogXFxmMDJjO1xuJGZhLXZhci10YWxseTogXFxmNjljO1xuJGZhLXZhci10YW5ha2g6IFxcZjgyNztcbiRmYS12YXItdGFwZTogXFxmNGRiO1xuJGZhLXZhci10YXNrczogXFxmMGFlO1xuJGZhLXZhci10YXNrcy1hbHQ6IFxcZjgyODtcbiRmYS12YXItdGF4aTogXFxmMWJhO1xuJGZhLXZhci10ZWFtc3BlYWs6IFxcZjRmOTtcbiRmYS12YXItdGVldGg6IFxcZjYyZTtcbiRmYS12YXItdGVldGgtb3BlbjogXFxmNjJmO1xuJGZhLXZhci10ZWxlZ3JhbTogXFxmMmM2O1xuJGZhLXZhci10ZWxlZ3JhbS1wbGFuZTogXFxmM2ZlO1xuJGZhLXZhci10ZWxlc2NvcGU6IFxcZTAzZTtcbiRmYS12YXItdGVtcGVyYXR1cmUtZG93bjogXFxlMDNmO1xuJGZhLXZhci10ZW1wZXJhdHVyZS1mcmlnaWQ6IFxcZjc2ODtcbiRmYS12YXItdGVtcGVyYXR1cmUtaGlnaDogXFxmNzY5O1xuJGZhLXZhci10ZW1wZXJhdHVyZS1ob3Q6IFxcZjc2YTtcbiRmYS12YXItdGVtcGVyYXR1cmUtbG93OiBcXGY3NmI7XG4kZmEtdmFyLXRlbXBlcmF0dXJlLXVwOiBcXGUwNDA7XG4kZmEtdmFyLXRlbmNlbnQtd2VpYm86IFxcZjFkNTtcbiRmYS12YXItdGVuZ2U6IFxcZjdkNztcbiRmYS12YXItdGVubmlzLWJhbGw6IFxcZjQ1ZTtcbiRmYS12YXItdGVybWluYWw6IFxcZjEyMDtcbiRmYS12YXItdGV4dDogXFxmODkzO1xuJGZhLXZhci10ZXh0LWhlaWdodDogXFxmMDM0O1xuJGZhLXZhci10ZXh0LXNpemU6IFxcZjg5NDtcbiRmYS12YXItdGV4dC13aWR0aDogXFxmMDM1O1xuJGZhLXZhci10aDogXFxmMDBhO1xuJGZhLXZhci10aC1sYXJnZTogXFxmMDA5O1xuJGZhLXZhci10aC1saXN0OiBcXGYwMGI7XG4kZmEtdmFyLXRoZS1yZWQteWV0aTogXFxmNjlkO1xuJGZhLXZhci10aGVhdGVyLW1hc2tzOiBcXGY2MzA7XG4kZmEtdmFyLXRoZW1lY286IFxcZjVjNjtcbiRmYS12YXItdGhlbWVpc2xlOiBcXGYyYjI7XG4kZmEtdmFyLXRoZXJtb21ldGVyOiBcXGY0OTE7XG4kZmEtdmFyLXRoZXJtb21ldGVyLWVtcHR5OiBcXGYyY2I7XG4kZmEtdmFyLXRoZXJtb21ldGVyLWZ1bGw6IFxcZjJjNztcbiRmYS12YXItdGhlcm1vbWV0ZXItaGFsZjogXFxmMmM5O1xuJGZhLXZhci10aGVybW9tZXRlci1xdWFydGVyOiBcXGYyY2E7XG4kZmEtdmFyLXRoZXJtb21ldGVyLXRocmVlLXF1YXJ0ZXJzOiBcXGYyYzg7XG4kZmEtdmFyLXRoZXRhOiBcXGY2OWU7XG4kZmEtdmFyLXRoaW5rLXBlYWtzOiBcXGY3MzE7XG4kZmEtdmFyLXRodW1icy1kb3duOiBcXGYxNjU7XG4kZmEtdmFyLXRodW1icy11cDogXFxmMTY0O1xuJGZhLXZhci10aHVtYnRhY2s6IFxcZjA4ZDtcbiRmYS12YXItdGh1bmRlcnN0b3JtOiBcXGY3NmM7XG4kZmEtdmFyLXRodW5kZXJzdG9ybS1tb29uOiBcXGY3NmQ7XG4kZmEtdmFyLXRodW5kZXJzdG9ybS1zdW46IFxcZjc2ZTtcbiRmYS12YXItdGlja2V0OiBcXGYxNDU7XG4kZmEtdmFyLXRpY2tldC1hbHQ6IFxcZjNmZjtcbiRmYS12YXItdGlrdG9rOiBcXGUwN2I7XG4kZmEtdmFyLXRpbGRlOiBcXGY2OWY7XG4kZmEtdmFyLXRpbWVzOiBcXGYwMGQ7XG4kZmEtdmFyLXRpbWVzLWNpcmNsZTogXFxmMDU3O1xuJGZhLXZhci10aW1lcy1oZXhhZ29uOiBcXGYyZWU7XG4kZmEtdmFyLXRpbWVzLW9jdGFnb246IFxcZjJmMDtcbiRmYS12YXItdGltZXMtc3F1YXJlOiBcXGYyZDM7XG4kZmEtdmFyLXRpbnQ6IFxcZjA0MztcbiRmYS12YXItdGludC1zbGFzaDogXFxmNWM3O1xuJGZhLXZhci10aXJlOiBcXGY2MzE7XG4kZmEtdmFyLXRpcmUtZmxhdDogXFxmNjMyO1xuJGZhLXZhci10aXJlLXByZXNzdXJlLXdhcm5pbmc6IFxcZjYzMztcbiRmYS12YXItdGlyZS1ydWdnZWQ6IFxcZjYzNDtcbiRmYS12YXItdGlyZWQ6IFxcZjVjODtcbiRmYS12YXItdG9nZ2xlLW9mZjogXFxmMjA0O1xuJGZhLXZhci10b2dnbGUtb246IFxcZjIwNTtcbiRmYS12YXItdG9pbGV0OiBcXGY3ZDg7XG4kZmEtdmFyLXRvaWxldC1wYXBlcjogXFxmNzFlO1xuJGZhLXZhci10b2lsZXQtcGFwZXItYWx0OiBcXGY3MWY7XG4kZmEtdmFyLXRvaWxldC1wYXBlci1zbGFzaDogXFxlMDcyO1xuJGZhLXZhci10b21ic3RvbmU6IFxcZjcyMDtcbiRmYS12YXItdG9tYnN0b25lLWFsdDogXFxmNzIxO1xuJGZhLXZhci10b29sYm94OiBcXGY1NTI7XG4kZmEtdmFyLXRvb2xzOiBcXGY3ZDk7XG4kZmEtdmFyLXRvb3RoOiBcXGY1Yzk7XG4kZmEtdmFyLXRvb3RoYnJ1c2g6IFxcZjYzNTtcbiRmYS12YXItdG9yYWg6IFxcZjZhMDtcbiRmYS12YXItdG9yaWktZ2F0ZTogXFxmNmExO1xuJGZhLXZhci10b3JuYWRvOiBcXGY3NmY7XG4kZmEtdmFyLXRyYWN0b3I6IFxcZjcyMjtcbiRmYS12YXItdHJhZGUtZmVkZXJhdGlvbjogXFxmNTEzO1xuJGZhLXZhci10cmFkZW1hcms6IFxcZjI1YztcbiRmYS12YXItdHJhZmZpYy1jb25lOiBcXGY2MzY7XG4kZmEtdmFyLXRyYWZmaWMtbGlnaHQ6IFxcZjYzNztcbiRmYS12YXItdHJhZmZpYy1saWdodC1nbzogXFxmNjM4O1xuJGZhLXZhci10cmFmZmljLWxpZ2h0LXNsb3c6IFxcZjYzOTtcbiRmYS12YXItdHJhZmZpYy1saWdodC1zdG9wOiBcXGY2M2E7XG4kZmEtdmFyLXRyYWlsZXI6IFxcZTA0MTtcbiRmYS12YXItdHJhaW46IFxcZjIzODtcbiRmYS12YXItdHJhbTogXFxmN2RhO1xuJGZhLXZhci10cmFuc2dlbmRlcjogXFxmMjI0O1xuJGZhLXZhci10cmFuc2dlbmRlci1hbHQ6IFxcZjIyNTtcbiRmYS12YXItdHJhbnNwb3J0ZXI6IFxcZTA0MjtcbiRmYS12YXItdHJhbnNwb3J0ZXItMTogXFxlMDQzO1xuJGZhLXZhci10cmFuc3BvcnRlci0yOiBcXGUwNDQ7XG4kZmEtdmFyLXRyYW5zcG9ydGVyLTM6IFxcZTA0NTtcbiRmYS12YXItdHJhbnNwb3J0ZXItZW1wdHk6IFxcZTA0NjtcbiRmYS12YXItdHJhc2g6IFxcZjFmODtcbiRmYS12YXItdHJhc2gtYWx0OiBcXGYyZWQ7XG4kZmEtdmFyLXRyYXNoLXJlc3RvcmU6IFxcZjgyOTtcbiRmYS12YXItdHJhc2gtcmVzdG9yZS1hbHQ6IFxcZjgyYTtcbiRmYS12YXItdHJhc2gtdW5kbzogXFxmODk1O1xuJGZhLXZhci10cmFzaC11bmRvLWFsdDogXFxmODk2O1xuJGZhLXZhci10cmVhc3VyZS1jaGVzdDogXFxmNzIzO1xuJGZhLXZhci10cmVlOiBcXGYxYmI7XG4kZmEtdmFyLXRyZWUtYWx0OiBcXGY0MDA7XG4kZmEtdmFyLXRyZWUtY2hyaXN0bWFzOiBcXGY3ZGI7XG4kZmEtdmFyLXRyZWUtZGVjb3JhdGVkOiBcXGY3ZGM7XG4kZmEtdmFyLXRyZWUtbGFyZ2U6IFxcZjdkZDtcbiRmYS12YXItdHJlZS1wYWxtOiBcXGY4MmI7XG4kZmEtdmFyLXRyZWVzOiBcXGY3MjQ7XG4kZmEtdmFyLXRyZWxsbzogXFxmMTgxO1xuJGZhLXZhci10cmlhbmdsZTogXFxmMmVjO1xuJGZhLXZhci10cmlhbmdsZS1tdXNpYzogXFxmOGUyO1xuJGZhLXZhci10cm9waHk6IFxcZjA5MTtcbiRmYS12YXItdHJvcGh5LWFsdDogXFxmMmViO1xuJGZhLXZhci10cnVjazogXFxmMGQxO1xuJGZhLXZhci10cnVjay1jb250YWluZXI6IFxcZjRkYztcbiRmYS12YXItdHJ1Y2stY291Y2g6IFxcZjRkZDtcbiRmYS12YXItdHJ1Y2stbG9hZGluZzogXFxmNGRlO1xuJGZhLXZhci10cnVjay1tb25zdGVyOiBcXGY2M2I7XG4kZmEtdmFyLXRydWNrLW1vdmluZzogXFxmNGRmO1xuJGZhLXZhci10cnVjay1waWNrdXA6IFxcZjYzYztcbiRmYS12YXItdHJ1Y2stcGxvdzogXFxmN2RlO1xuJGZhLXZhci10cnVjay1yYW1wOiBcXGY0ZTA7XG4kZmEtdmFyLXRydW1wZXQ6IFxcZjhlMztcbiRmYS12YXItdHNoaXJ0OiBcXGY1NTM7XG4kZmEtdmFyLXR0eTogXFxmMWU0O1xuJGZhLXZhci10dW1ibHI6IFxcZjE3MztcbiRmYS12YXItdHVtYmxyLXNxdWFyZTogXFxmMTc0O1xuJGZhLXZhci10dXJrZXk6IFxcZjcyNTtcbiRmYS12YXItdHVybnRhYmxlOiBcXGY4ZTQ7XG4kZmEtdmFyLXR1cnRsZTogXFxmNzI2O1xuJGZhLXZhci10djogXFxmMjZjO1xuJGZhLXZhci10di1hbHQ6IFxcZjhlNTtcbiRmYS12YXItdHYtbXVzaWM6IFxcZjhlNjtcbiRmYS12YXItdHYtcmV0cm86IFxcZjQwMTtcbiRmYS12YXItdHdpdGNoOiBcXGYxZTg7XG4kZmEtdmFyLXR3aXR0ZXI6IFxcZjA5OTtcbiRmYS12YXItdHdpdHRlci1zcXVhcmU6IFxcZjA4MTtcbiRmYS12YXItdHlwZXdyaXRlcjogXFxmOGU3O1xuJGZhLXZhci10eXBvMzogXFxmNDJiO1xuJGZhLXZhci11YmVyOiBcXGY0MDI7XG4kZmEtdmFyLXVidW50dTogXFxmN2RmO1xuJGZhLXZhci11Zm86IFxcZTA0NztcbiRmYS12YXItdWZvLWJlYW06IFxcZTA0ODtcbiRmYS12YXItdWlraXQ6IFxcZjQwMztcbiRmYS12YXItdW1icmFjbzogXFxmOGU4O1xuJGZhLXZhci11bWJyZWxsYTogXFxmMGU5O1xuJGZhLXZhci11bWJyZWxsYS1iZWFjaDogXFxmNWNhO1xuJGZhLXZhci11bmNoYXJ0ZWQ6IFxcZTA4NDtcbiRmYS12YXItdW5kZXJsaW5lOiBcXGYwY2Q7XG4kZmEtdmFyLXVuZG86IFxcZjBlMjtcbiRmYS12YXItdW5kby1hbHQ6IFxcZjJlYTtcbiRmYS12YXItdW5pY29ybjogXFxmNzI3O1xuJGZhLXZhci11bmlvbjogXFxmNmEyO1xuJGZhLXZhci11bmlyZWdpc3RyeTogXFxmNDA0O1xuJGZhLXZhci11bml0eTogXFxlMDQ5O1xuJGZhLXZhci11bml2ZXJzYWwtYWNjZXNzOiBcXGYyOWE7XG4kZmEtdmFyLXVuaXZlcnNpdHk6IFxcZjE5YztcbiRmYS12YXItdW5saW5rOiBcXGYxMjc7XG4kZmEtdmFyLXVubG9jazogXFxmMDljO1xuJGZhLXZhci11bmxvY2stYWx0OiBcXGYxM2U7XG4kZmEtdmFyLXVuc3BsYXNoOiBcXGUwN2M7XG4kZmEtdmFyLXVudGFwcGQ6IFxcZjQwNTtcbiRmYS12YXItdXBsb2FkOiBcXGYwOTM7XG4kZmEtdmFyLXVwczogXFxmN2UwO1xuJGZhLXZhci11c2I6IFxcZjI4NztcbiRmYS12YXItdXNiLWRyaXZlOiBcXGY4ZTk7XG4kZmEtdmFyLXVzZC1jaXJjbGU6IFxcZjJlODtcbiRmYS12YXItdXNkLXNxdWFyZTogXFxmMmU5O1xuJGZhLXZhci11c2VyOiBcXGYwMDc7XG4kZmEtdmFyLXVzZXItYWxpZW46IFxcZTA0YTtcbiRmYS12YXItdXNlci1hbHQ6IFxcZjQwNjtcbiRmYS12YXItdXNlci1hbHQtc2xhc2g6IFxcZjRmYTtcbiRmYS12YXItdXNlci1hc3Ryb25hdXQ6IFxcZjRmYjtcbiRmYS12YXItdXNlci1jaGFydDogXFxmNmEzO1xuJGZhLXZhci11c2VyLWNoZWNrOiBcXGY0ZmM7XG4kZmEtdmFyLXVzZXItY2lyY2xlOiBcXGYyYmQ7XG4kZmEtdmFyLXVzZXItY2xvY2s6IFxcZjRmZDtcbiRmYS12YXItdXNlci1jb2c6IFxcZjRmZTtcbiRmYS12YXItdXNlci1jb3dib3k6IFxcZjhlYTtcbiRmYS12YXItdXNlci1jcm93bjogXFxmNmE0O1xuJGZhLXZhci11c2VyLWVkaXQ6IFxcZjRmZjtcbiRmYS12YXItdXNlci1mcmllbmRzOiBcXGY1MDA7XG4kZmEtdmFyLXVzZXItZ3JhZHVhdGU6IFxcZjUwMTtcbiRmYS12YXItdXNlci1oYXJkLWhhdDogXFxmODJjO1xuJGZhLXZhci11c2VyLWhlYWRzZXQ6IFxcZjgyZDtcbiRmYS12YXItdXNlci1pbmp1cmVkOiBcXGY3Mjg7XG4kZmEtdmFyLXVzZXItbG9jazogXFxmNTAyO1xuJGZhLXZhci11c2VyLW1kOiBcXGYwZjA7XG4kZmEtdmFyLXVzZXItbWQtY2hhdDogXFxmODJlO1xuJGZhLXZhci11c2VyLW1pbnVzOiBcXGY1MDM7XG4kZmEtdmFyLXVzZXItbXVzaWM6IFxcZjhlYjtcbiRmYS12YXItdXNlci1uaW5qYTogXFxmNTA0O1xuJGZhLXZhci11c2VyLW51cnNlOiBcXGY4MmY7XG4kZmEtdmFyLXVzZXItcGx1czogXFxmMjM0O1xuJGZhLXZhci11c2VyLXJvYm90OiBcXGUwNGI7XG4kZmEtdmFyLXVzZXItc2VjcmV0OiBcXGYyMWI7XG4kZmEtdmFyLXVzZXItc2hpZWxkOiBcXGY1MDU7XG4kZmEtdmFyLXVzZXItc2xhc2g6IFxcZjUwNjtcbiRmYS12YXItdXNlci10YWc6IFxcZjUwNztcbiRmYS12YXItdXNlci10aWU6IFxcZjUwODtcbiRmYS12YXItdXNlci10aW1lczogXFxmMjM1O1xuJGZhLXZhci11c2VyLXVubG9jazogXFxlMDU4O1xuJGZhLXZhci11c2VyLXZpc29yOiBcXGUwNGM7XG4kZmEtdmFyLXVzZXJzOiBcXGYwYzA7XG4kZmEtdmFyLXVzZXJzLWNsYXNzOiBcXGY2M2Q7XG4kZmEtdmFyLXVzZXJzLWNvZzogXFxmNTA5O1xuJGZhLXZhci11c2Vycy1jcm93bjogXFxmNmE1O1xuJGZhLXZhci11c2Vycy1tZWRpY2FsOiBcXGY4MzA7XG4kZmEtdmFyLXVzZXJzLXNsYXNoOiBcXGUwNzM7XG4kZmEtdmFyLXVzcHM6IFxcZjdlMTtcbiRmYS12YXItdXNzdW5uYWg6IFxcZjQwNztcbiRmYS12YXItdXRlbnNpbC1mb3JrOiBcXGYyZTM7XG4kZmEtdmFyLXV0ZW5zaWwta25pZmU6IFxcZjJlNDtcbiRmYS12YXItdXRlbnNpbC1zcG9vbjogXFxmMmU1O1xuJGZhLXZhci11dGVuc2lsczogXFxmMmU3O1xuJGZhLXZhci11dGVuc2lscy1hbHQ6IFxcZjJlNjtcbiRmYS12YXItdmFhZGluOiBcXGY0MDg7XG4kZmEtdmFyLXZhY3V1bTogXFxlMDRkO1xuJGZhLXZhci12YWN1dW0tcm9ib3Q6IFxcZTA0ZTtcbiRmYS12YXItdmFsdWUtYWJzb2x1dGU6IFxcZjZhNjtcbiRmYS12YXItdmVjdG9yLXNxdWFyZTogXFxmNWNiO1xuJGZhLXZhci12ZW51czogXFxmMjIxO1xuJGZhLXZhci12ZW51cy1kb3VibGU6IFxcZjIyNjtcbiRmYS12YXItdmVudXMtbWFyczogXFxmMjI4O1xuJGZhLXZhci12ZXN0OiBcXGUwODU7XG4kZmEtdmFyLXZlc3QtcGF0Y2hlczogXFxlMDg2O1xuJGZhLXZhci12aHM6IFxcZjhlYztcbiRmYS12YXItdmlhY29pbjogXFxmMjM3O1xuJGZhLXZhci12aWFkZW86IFxcZjJhOTtcbiRmYS12YXItdmlhZGVvLXNxdWFyZTogXFxmMmFhO1xuJGZhLXZhci12aWFsOiBcXGY0OTI7XG4kZmEtdmFyLXZpYWxzOiBcXGY0OTM7XG4kZmEtdmFyLXZpYmVyOiBcXGY0MDk7XG4kZmEtdmFyLXZpZGVvOiBcXGYwM2Q7XG4kZmEtdmFyLXZpZGVvLXBsdXM6IFxcZjRlMTtcbiRmYS12YXItdmlkZW8tc2xhc2g6IFxcZjRlMjtcbiRmYS12YXItdmloYXJhOiBcXGY2YTc7XG4kZmEtdmFyLXZpbWVvOiBcXGY0MGE7XG4kZmEtdmFyLXZpbWVvLXNxdWFyZTogXFxmMTk0O1xuJGZhLXZhci12aW1lby12OiBcXGYyN2Q7XG4kZmEtdmFyLXZpbmU6IFxcZjFjYTtcbiRmYS12YXItdmlvbGluOiBcXGY4ZWQ7XG4kZmEtdmFyLXZpcnVzOiBcXGUwNzQ7XG4kZmEtdmFyLXZpcnVzLXNsYXNoOiBcXGUwNzU7XG4kZmEtdmFyLXZpcnVzZXM6IFxcZTA3NjtcbiRmYS12YXItdms6IFxcZjE4OTtcbiRmYS12YXItdm52OiBcXGY0MGI7XG4kZmEtdmFyLXZvaWNlbWFpbDogXFxmODk3O1xuJGZhLXZhci12b2xjYW5vOiBcXGY3NzA7XG4kZmEtdmFyLXZvbGxleWJhbGwtYmFsbDogXFxmNDVmO1xuJGZhLXZhci12b2x1bWU6IFxcZjZhODtcbiRmYS12YXItdm9sdW1lLWRvd246IFxcZjAyNztcbiRmYS12YXItdm9sdW1lLW11dGU6IFxcZjZhOTtcbiRmYS12YXItdm9sdW1lLW9mZjogXFxmMDI2O1xuJGZhLXZhci12b2x1bWUtc2xhc2g6IFxcZjJlMjtcbiRmYS12YXItdm9sdW1lLXVwOiBcXGYwMjg7XG4kZmEtdmFyLXZvdGUtbmF5OiBcXGY3NzE7XG4kZmEtdmFyLXZvdGUteWVhOiBcXGY3NzI7XG4kZmEtdmFyLXZyLWNhcmRib2FyZDogXFxmNzI5O1xuJGZhLXZhci12dWVqczogXFxmNDFmO1xuJGZhLXZhci13YWdvbi1jb3ZlcmVkOiBcXGY4ZWU7XG4kZmEtdmFyLXdhbGtlcjogXFxmODMxO1xuJGZhLXZhci13YWxraWUtdGFsa2llOiBcXGY4ZWY7XG4kZmEtdmFyLXdhbGtpbmc6IFxcZjU1NDtcbiRmYS12YXItd2FsbGV0OiBcXGY1NTU7XG4kZmEtdmFyLXdhbmQ6IFxcZjcyYTtcbiRmYS12YXItd2FuZC1tYWdpYzogXFxmNzJiO1xuJGZhLXZhci13YXJlaG91c2U6IFxcZjQ5NDtcbiRmYS12YXItd2FyZWhvdXNlLWFsdDogXFxmNDk1O1xuJGZhLXZhci13YXNoZXI6IFxcZjg5ODtcbiRmYS12YXItd2F0Y2g6IFxcZjJlMTtcbiRmYS12YXItd2F0Y2gtY2FsY3VsYXRvcjogXFxmOGYwO1xuJGZhLXZhci13YXRjaC1maXRuZXNzOiBcXGY2M2U7XG4kZmEtdmFyLXdhdGNobWFuLW1vbml0b3Jpbmc6IFxcZTA4NztcbiRmYS12YXItd2F0ZXI6IFxcZjc3MztcbiRmYS12YXItd2F0ZXItbG93ZXI6IFxcZjc3NDtcbiRmYS12YXItd2F0ZXItcmlzZTogXFxmNzc1O1xuJGZhLXZhci13YXZlLXNpbmU6IFxcZjg5OTtcbiRmYS12YXItd2F2ZS1zcXVhcmU6IFxcZjgzZTtcbiRmYS12YXItd2F2ZS10cmlhbmdsZTogXFxmODlhO1xuJGZhLXZhci13YXZlZm9ybTogXFxmOGYxO1xuJGZhLXZhci13YXZlZm9ybS1wYXRoOiBcXGY4ZjI7XG4kZmEtdmFyLXdhemU6IFxcZjgzZjtcbiRmYS12YXItd2ViY2FtOiBcXGY4MzI7XG4kZmEtdmFyLXdlYmNhbS1zbGFzaDogXFxmODMzO1xuJGZhLXZhci13ZWVibHk6IFxcZjVjYztcbiRmYS12YXItd2VpYm86IFxcZjE4YTtcbiRmYS12YXItd2VpZ2h0OiBcXGY0OTY7XG4kZmEtdmFyLXdlaWdodC1oYW5naW5nOiBcXGY1Y2Q7XG4kZmEtdmFyLXdlaXhpbjogXFxmMWQ3O1xuJGZhLXZhci13aGFsZTogXFxmNzJjO1xuJGZhLXZhci13aGF0c2FwcDogXFxmMjMyO1xuJGZhLXZhci13aGF0c2FwcC1zcXVhcmU6IFxcZjQwYztcbiRmYS12YXItd2hlYXQ6IFxcZjcyZDtcbiRmYS12YXItd2hlZWxjaGFpcjogXFxmMTkzO1xuJGZhLXZhci13aGlzdGxlOiBcXGY0NjA7XG4kZmEtdmFyLXdobWNzOiBcXGY0MGQ7XG4kZmEtdmFyLXdpZmk6IFxcZjFlYjtcbiRmYS12YXItd2lmaS0xOiBcXGY2YWE7XG4kZmEtdmFyLXdpZmktMjogXFxmNmFiO1xuJGZhLXZhci13aWZpLXNsYXNoOiBcXGY2YWM7XG4kZmEtdmFyLXdpa2lwZWRpYS13OiBcXGYyNjY7XG4kZmEtdmFyLXdpbmQ6IFxcZjcyZTtcbiRmYS12YXItd2luZC10dXJiaW5lOiBcXGY4OWI7XG4kZmEtdmFyLXdpbmQtd2FybmluZzogXFxmNzc2O1xuJGZhLXZhci13aW5kb3c6IFxcZjQwZTtcbiRmYS12YXItd2luZG93LWFsdDogXFxmNDBmO1xuJGZhLXZhci13aW5kb3ctY2xvc2U6IFxcZjQxMDtcbiRmYS12YXItd2luZG93LWZyYW1lOiBcXGUwNGY7XG4kZmEtdmFyLXdpbmRvdy1mcmFtZS1vcGVuOiBcXGUwNTA7XG4kZmEtdmFyLXdpbmRvdy1tYXhpbWl6ZTogXFxmMmQwO1xuJGZhLXZhci13aW5kb3ctbWluaW1pemU6IFxcZjJkMTtcbiRmYS12YXItd2luZG93LXJlc3RvcmU6IFxcZjJkMjtcbiRmYS12YXItd2luZG93czogXFxmMTdhO1xuJGZhLXZhci13aW5kc29jazogXFxmNzc3O1xuJGZhLXZhci13aW5lLWJvdHRsZTogXFxmNzJmO1xuJGZhLXZhci13aW5lLWdsYXNzOiBcXGY0ZTM7XG4kZmEtdmFyLXdpbmUtZ2xhc3MtYWx0OiBcXGY1Y2U7XG4kZmEtdmFyLXdpeDogXFxmNWNmO1xuJGZhLXZhci13aXphcmRzLW9mLXRoZS1jb2FzdDogXFxmNzMwO1xuJGZhLXZhci13b2R1OiBcXGUwODg7XG4kZmEtdmFyLXdvbGYtcGFjay1iYXR0YWxpb246IFxcZjUxNDtcbiRmYS12YXItd29uLXNpZ246IFxcZjE1OTtcbiRmYS12YXItd29yZHByZXNzOiBcXGYxOWE7XG4kZmEtdmFyLXdvcmRwcmVzcy1zaW1wbGU6IFxcZjQxMTtcbiRmYS12YXItd3BiZWdpbm5lcjogXFxmMjk3O1xuJGZhLXZhci13cGV4cGxvcmVyOiBcXGYyZGU7XG4kZmEtdmFyLXdwZm9ybXM6IFxcZjI5ODtcbiRmYS12YXItd3ByZXNzcjogXFxmM2U0O1xuJGZhLXZhci13cmVhdGg6IFxcZjdlMjtcbiRmYS12YXItd3JlbmNoOiBcXGYwYWQ7XG4kZmEtdmFyLXgtcmF5OiBcXGY0OTc7XG4kZmEtdmFyLXhib3g6IFxcZjQxMjtcbiRmYS12YXIteGluZzogXFxmMTY4O1xuJGZhLXZhci14aW5nLXNxdWFyZTogXFxmMTY5O1xuJGZhLXZhci15LWNvbWJpbmF0b3I6IFxcZjIzYjtcbiRmYS12YXIteWFob286IFxcZjE5ZTtcbiRmYS12YXIteWFtbWVyOiBcXGY4NDA7XG4kZmEtdmFyLXlhbmRleDogXFxmNDEzO1xuJGZhLXZhci15YW5kZXgtaW50ZXJuYXRpb25hbDogXFxmNDE0O1xuJGZhLXZhci15YXJuOiBcXGY3ZTM7XG4kZmEtdmFyLXllbHA6IFxcZjFlOTtcbiRmYS12YXIteWVuLXNpZ246IFxcZjE1NztcbiRmYS12YXIteWluLXlhbmc6IFxcZjZhZDtcbiRmYS12YXIteW9hc3Q6IFxcZjJiMTtcbiRmYS12YXIteW91dHViZTogXFxmMTY3O1xuJGZhLXZhci15b3V0dWJlLXNxdWFyZTogXFxmNDMxO1xuJGZhLXZhci16aGlodTogXFxmNjNmO1xuIiwiLy8gTGlzdCBJY29uc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uI3skZmEtY3NzLXByZWZpeH0tdWwge1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIG1hcmdpbi1sZWZ0OiAkZmEtbGktd2lkdGg7XG4gIHBhZGRpbmctbGVmdDogMDtcblxuICA+IGxpIHsgcG9zaXRpb246IHJlbGF0aXZlOyB9XG59XG5cbi4jeyRmYS1jc3MtcHJlZml4fS1saSB7XG4gIGxlZnQ6IC0kZmEtbGktd2lkdGg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aWR0aDogJGZhLWZ3LXdpZHRoO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbn1cbiIsIi8vIEJvcmRlcmVkICYgUHVsbGVkXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi4jeyRmYS1jc3MtcHJlZml4fS1ib3JkZXIge1xuICBib3JkZXI6IHNvbGlkIC4wOGVtICRmYS1ib3JkZXItY29sb3I7XG4gIGJvcmRlci1yYWRpdXM6IC4xZW07XG4gIHBhZGRpbmc6IC4yZW0gLjI1ZW0gLjE1ZW07XG59XG5cbi4jeyRmYS1jc3MtcHJlZml4fS1wdWxsLWxlZnQgeyBmbG9hdDogbGVmdDsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXB1bGwtcmlnaHQgeyBmbG9hdDogcmlnaHQ7IH1cblxuLiN7JGZhLWNzcy1wcmVmaXh9LFxuLmZhcyxcbi5mYXIsXG4uZmFsLFxuLmZhYiB7XG4gICYuI3skZmEtY3NzLXByZWZpeH0tcHVsbC1sZWZ0IHsgbWFyZ2luLXJpZ2h0OiAuM2VtOyB9XG4gICYuI3skZmEtY3NzLXByZWZpeH0tcHVsbC1yaWdodCB7IG1hcmdpbi1sZWZ0OiAuM2VtOyB9XG59XG4iLCIvLyBBbmltYXRlZCBJY29uc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLiN7JGZhLWNzcy1wcmVmaXh9LXNwaW4ge1xuICBhbmltYXRpb246IGZhLXNwaW4gMnMgaW5maW5pdGUgbGluZWFyO1xufVxuXG4uI3skZmEtY3NzLXByZWZpeH0tcHVsc2Uge1xuICBhbmltYXRpb246IGZhLXNwaW4gMXMgaW5maW5pdGUgc3RlcHMoOCk7XG59XG5cbkBrZXlmcmFtZXMgZmEtc3BpbiB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn1cbiIsIi8vIFJvdGF0ZWQgJiBGbGlwcGVkIEljb25zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi4jeyRmYS1jc3MtcHJlZml4fS1yb3RhdGUtOTAgIHsgQGluY2x1ZGUgZmEtaWNvbi1yb3RhdGUoOTBkZWcsIDEpOyAgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJvdGF0ZS0xODAgeyBAaW5jbHVkZSBmYS1pY29uLXJvdGF0ZSgxODBkZWcsIDIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcm90YXRlLTI3MCB7IEBpbmNsdWRlIGZhLWljb24tcm90YXRlKDI3MGRlZywgMyk7IH1cblxuLiN7JGZhLWNzcy1wcmVmaXh9LWZsaXAtaG9yaXpvbnRhbCB7IEBpbmNsdWRlIGZhLWljb24tZmxpcCgtMSwgMSwgMCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1mbGlwLXZlcnRpY2FsICAgeyBAaW5jbHVkZSBmYS1pY29uLWZsaXAoMSwgLTEsIDIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmxpcC1ib3RoLCAuI3skZmEtY3NzLXByZWZpeH0tZmxpcC1ob3Jpem9udGFsLiN7JGZhLWNzcy1wcmVmaXh9LWZsaXAtdmVydGljYWwgeyBAaW5jbHVkZSBmYS1pY29uLWZsaXAoLTEsIC0xLCAyKTsgfVxuXG4vLyBIb29rIGZvciBJRTgtOVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG46cm9vdCB7XG4gIC4jeyRmYS1jc3MtcHJlZml4fS1yb3RhdGUtOTAsXG4gIC4jeyRmYS1jc3MtcHJlZml4fS1yb3RhdGUtMTgwLFxuICAuI3skZmEtY3NzLXByZWZpeH0tcm90YXRlLTI3MCxcbiAgLiN7JGZhLWNzcy1wcmVmaXh9LWZsaXAtaG9yaXpvbnRhbCxcbiAgLiN7JGZhLWNzcy1wcmVmaXh9LWZsaXAtdmVydGljYWwsXG4gIC4jeyRmYS1jc3MtcHJlZml4fS1mbGlwLWJvdGgge1xuICAgIGZpbHRlcjogbm9uZTtcbiAgfVxufVxuIiwiLy8gTWl4aW5zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AbWl4aW4gZmEtaWNvbiB7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuXG5AbWl4aW4gZmEtaWNvbi1yb3RhdGUoJGRlZ3JlZXMsICRyb3RhdGlvbikge1xuICAtbXMtZmlsdGVyOiBcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5CYXNpY0ltYWdlKHJvdGF0aW9uPSN7JHJvdGF0aW9ufSlcIjtcbiAgdHJhbnNmb3JtOiByb3RhdGUoJGRlZ3JlZXMpO1xufVxuXG5AbWl4aW4gZmEtaWNvbi1mbGlwKCRob3JpeiwgJHZlcnQsICRyb3RhdGlvbikge1xuICAtbXMtZmlsdGVyOiBcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5CYXNpY0ltYWdlKHJvdGF0aW9uPSN7JHJvdGF0aW9ufSwgbWlycm9yPTEpXCI7XG4gIHRyYW5zZm9ybTogc2NhbGUoJGhvcml6LCAkdmVydCk7XG59XG5cblxuLy8gT25seSBkaXNwbGF5IGNvbnRlbnQgdG8gc2NyZWVuIHJlYWRlcnMuIEEgbGEgQm9vdHN0cmFwIDQuXG4vL1xuLy8gU2VlOiBodHRwOi8vYTExeXByb2plY3QuY29tL3Bvc3RzL2hvdy10by1oaWRlLWNvbnRlbnQvXG5cbkBtaXhpbiBzci1vbmx5IHtcbiAgYm9yZGVyOiAwO1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAtMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxcHg7XG59XG5cbi8vIFVzZSBpbiBjb25qdW5jdGlvbiB3aXRoIC5zci1vbmx5IHRvIG9ubHkgZGlzcGxheSBjb250ZW50IHdoZW4gaXQncyBmb2N1c2VkLlxuLy9cbi8vIFVzZWZ1bCBmb3IgXCJTa2lwIHRvIG1haW4gY29udGVudFwiIGxpbmtzOyBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAxMy9OT1RFLVdDQUcyMC1URUNIUy0yMDEzMDkwNS9HMVxuLy9cbi8vIENyZWRpdDogSFRNTDUgQm9pbGVycGxhdGVcblxuQG1peGluIHNyLW9ubHktZm9jdXNhYmxlIHtcbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMge1xuICAgIGNsaXA6IGF1dG87XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbjogMDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG59XG4iLCIvLyBTdGFja2VkIEljb25zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi4jeyRmYS1jc3MtcHJlZml4fS1zdGFjayB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgaGVpZ2h0OiAyZW07XG4gIGxpbmUtaGVpZ2h0OiAyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2lkdGg6ICgkZmEtZnctd2lkdGgqMik7XG59XG5cbi4jeyRmYS1jc3MtcHJlZml4fS1zdGFjay0xeCxcbi4jeyRmYS1jc3MtcHJlZml4fS1zdGFjay0yeCB7XG4gIGxlZnQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLiN7JGZhLWNzcy1wcmVmaXh9LXN0YWNrLTF4IHtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG59XG5cbi4jeyRmYS1jc3MtcHJlZml4fS1zdGFjay0yeCB7XG4gIGZvbnQtc2l6ZTogMmVtO1xufVxuXG4uI3skZmEtY3NzLXByZWZpeH0taW52ZXJzZSB7XG4gIGNvbG9yOiAkZmEtaW52ZXJzZTtcbn1cbiIsIi8qIEZvbnQgQXdlc29tZSB1c2VzIHRoZSBVbmljb2RlIFByaXZhdGUgVXNlIEFyZWEgKFBVQSkgdG8gZW5zdXJlIHNjcmVlblxucmVhZGVycyBkbyBub3QgcmVhZCBvZmYgcmFuZG9tIGNoYXJhY3RlcnMgdGhhdCByZXByZXNlbnQgaWNvbnMgKi9cblxuLiN7JGZhLWNzcy1wcmVmaXh9LTUwMHB4OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci01MDBweCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hYmFjdXM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFiYWN1cyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hY2Nlc3NpYmxlLWljb246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFjY2Vzc2libGUtaWNvbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hY2N1c29mdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYWNjdXNvZnQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYWNvcm46YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFjb3JuKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFjcXVpc2l0aW9ucy1pbmNvcnBvcmF0ZWQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFjcXVpc2l0aW9ucy1pbmNvcnBvcmF0ZWQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYWQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFkZHJlc3MtYm9vazpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYWRkcmVzcy1ib29rKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFkZHJlc3MtY2FyZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYWRkcmVzcy1jYXJkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFkanVzdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYWRqdXN0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFkbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYWRuKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFkdmVyc2FsOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hZHZlcnNhbCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hZmZpbGlhdGV0aGVtZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYWZmaWxpYXRldGhlbWUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYWlyLWNvbmRpdGlvbmVyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1haXItY29uZGl0aW9uZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYWlyLWZyZXNoZW5lcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYWlyLWZyZXNoZW5lcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1haXJibmI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFpcmJuYik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hbGFybS1jbG9jazpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYWxhcm0tY2xvY2spOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYWxhcm0tZXhjbGFtYXRpb246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFsYXJtLWV4Y2xhbWF0aW9uKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFsYXJtLXBsdXM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFsYXJtLXBsdXMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYWxhcm0tc25vb3plOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hbGFybS1zbm9vemUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYWxidW06YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFsYnVtKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFsYnVtLWNvbGxlY3Rpb246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFsYnVtLWNvbGxlY3Rpb24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYWxnb2xpYTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYWxnb2xpYSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hbGljb3JuOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hbGljb3JuKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFsaWVuOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hbGllbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hbGllbi1tb25zdGVyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hbGllbi1tb25zdGVyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFsaWduLWNlbnRlcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYWxpZ24tY2VudGVyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFsaWduLWp1c3RpZnk6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFsaWduLWp1c3RpZnkpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYWxpZ24tbGVmdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYWxpZ24tbGVmdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hbGlnbi1yaWdodDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYWxpZ24tcmlnaHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYWxpZ24tc2xhc2g6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFsaWduLXNsYXNoKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFsaXBheTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYWxpcGF5KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFsbGVyZ2llczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYWxsZXJnaWVzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFtYXpvbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYW1hem9uKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFtYXpvbi1wYXk6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFtYXpvbi1wYXkpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYW1idWxhbmNlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hbWJ1bGFuY2UpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYW1lcmljYW4tc2lnbi1sYW5ndWFnZS1pbnRlcnByZXRpbmc6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFtZXJpY2FuLXNpZ24tbGFuZ3VhZ2UtaW50ZXJwcmV0aW5nKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFtaWxpYTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYW1pbGlhKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFtcC1ndWl0YXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFtcC1ndWl0YXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYW5hbHl0aWNzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hbmFseXRpY3MpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYW5jaG9yOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hbmNob3IpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYW5kcm9pZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYW5kcm9pZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hbmdlbDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYW5nZWwpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYW5nZWxsaXN0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hbmdlbGxpc3QpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYW5nbGUtZG91YmxlLWRvd246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFuZ2xlLWRvdWJsZS1kb3duKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFuZ2xlLWRvdWJsZS1sZWZ0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hbmdsZS1kb3VibGUtbGVmdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hbmdsZS1kb3VibGUtcmlnaHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFuZ2xlLWRvdWJsZS1yaWdodCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hbmdsZS1kb3VibGUtdXA6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFuZ2xlLWRvdWJsZS11cCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hbmdsZS1kb3duOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hbmdsZS1kb3duKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFuZ2xlLWxlZnQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFuZ2xlLWxlZnQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYW5nbGUtcmlnaHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFuZ2xlLXJpZ2h0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFuZ2xlLXVwOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hbmdsZS11cCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hbmdyeTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYW5ncnkpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYW5ncnljcmVhdGl2ZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYW5ncnljcmVhdGl2ZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hbmd1bGFyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hbmd1bGFyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFua2g6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFua2gpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYXBwLXN0b3JlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hcHAtc3RvcmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYXBwLXN0b3JlLWlvczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYXBwLXN0b3JlLWlvcyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hcHBlcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYXBwZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYXBwbGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFwcGxlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFwcGxlLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYXBwbGUtYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFwcGxlLWNyYXRlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hcHBsZS1jcmF0ZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hcHBsZS1wYXk6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFwcGxlLXBheSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hcmNoaXZlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hcmNoaXZlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFyY2h3YXk6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFyY2h3YXkpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYXJyb3ctYWx0LWNpcmNsZS1kb3duOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hcnJvdy1hbHQtY2lyY2xlLWRvd24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYXJyb3ctYWx0LWNpcmNsZS1sZWZ0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hcnJvdy1hbHQtY2lyY2xlLWxlZnQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYXJyb3ctYWx0LWNpcmNsZS1yaWdodDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYXJyb3ctYWx0LWNpcmNsZS1yaWdodCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hcnJvdy1hbHQtY2lyY2xlLXVwOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hcnJvdy1hbHQtY2lyY2xlLXVwKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFycm93LWFsdC1kb3duOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hcnJvdy1hbHQtZG93bik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hcnJvdy1hbHQtZnJvbS1ib3R0b206YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFycm93LWFsdC1mcm9tLWJvdHRvbSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hcnJvdy1hbHQtZnJvbS1sZWZ0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hcnJvdy1hbHQtZnJvbS1sZWZ0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFycm93LWFsdC1mcm9tLXJpZ2h0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hcnJvdy1hbHQtZnJvbS1yaWdodCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hcnJvdy1hbHQtZnJvbS10b3A6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFycm93LWFsdC1mcm9tLXRvcCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hcnJvdy1hbHQtbGVmdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYXJyb3ctYWx0LWxlZnQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYXJyb3ctYWx0LXJpZ2h0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hcnJvdy1hbHQtcmlnaHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYXJyb3ctYWx0LXNxdWFyZS1kb3duOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hcnJvdy1hbHQtc3F1YXJlLWRvd24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYXJyb3ctYWx0LXNxdWFyZS1sZWZ0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hcnJvdy1hbHQtc3F1YXJlLWxlZnQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYXJyb3ctYWx0LXNxdWFyZS1yaWdodDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYXJyb3ctYWx0LXNxdWFyZS1yaWdodCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hcnJvdy1hbHQtc3F1YXJlLXVwOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hcnJvdy1hbHQtc3F1YXJlLXVwKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFycm93LWFsdC10by1ib3R0b206YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFycm93LWFsdC10by1ib3R0b20pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYXJyb3ctYWx0LXRvLWxlZnQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFycm93LWFsdC10by1sZWZ0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFycm93LWFsdC10by1yaWdodDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYXJyb3ctYWx0LXRvLXJpZ2h0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFycm93LWFsdC10by10b3A6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFycm93LWFsdC10by10b3ApOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYXJyb3ctYWx0LXVwOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hcnJvdy1hbHQtdXApOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYXJyb3ctY2lyY2xlLWRvd246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFycm93LWNpcmNsZS1kb3duKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFycm93LWNpcmNsZS1sZWZ0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hcnJvdy1jaXJjbGUtbGVmdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hcnJvdy1jaXJjbGUtcmlnaHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFycm93LWNpcmNsZS1yaWdodCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hcnJvdy1jaXJjbGUtdXA6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFycm93LWNpcmNsZS11cCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hcnJvdy1kb3duOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hcnJvdy1kb3duKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFycm93LWZyb20tYm90dG9tOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hcnJvdy1mcm9tLWJvdHRvbSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hcnJvdy1mcm9tLWxlZnQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFycm93LWZyb20tbGVmdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hcnJvdy1mcm9tLXJpZ2h0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hcnJvdy1mcm9tLXJpZ2h0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFycm93LWZyb20tdG9wOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hcnJvdy1mcm9tLXRvcCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hcnJvdy1sZWZ0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hcnJvdy1sZWZ0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFycm93LXJpZ2h0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hcnJvdy1yaWdodCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hcnJvdy1zcXVhcmUtZG93bjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYXJyb3ctc3F1YXJlLWRvd24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYXJyb3ctc3F1YXJlLWxlZnQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFycm93LXNxdWFyZS1sZWZ0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFycm93LXNxdWFyZS1yaWdodDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYXJyb3ctc3F1YXJlLXJpZ2h0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFycm93LXNxdWFyZS11cDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYXJyb3ctc3F1YXJlLXVwKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFycm93LXRvLWJvdHRvbTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYXJyb3ctdG8tYm90dG9tKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFycm93LXRvLWxlZnQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFycm93LXRvLWxlZnQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYXJyb3ctdG8tcmlnaHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFycm93LXRvLXJpZ2h0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFycm93LXRvLXRvcDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYXJyb3ctdG8tdG9wKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFycm93LXVwOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hcnJvdy11cCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hcnJvd3M6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFycm93cyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hcnJvd3MtYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hcnJvd3MtYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFycm93cy1hbHQtaDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYXJyb3dzLWFsdC1oKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFycm93cy1hbHQtdjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYXJyb3dzLWFsdC12KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFycm93cy1oOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hcnJvd3MtaCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hcnJvd3MtdjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYXJyb3dzLXYpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYXJ0c3RhdGlvbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYXJ0c3RhdGlvbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hc3Npc3RpdmUtbGlzdGVuaW5nLXN5c3RlbXM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFzc2lzdGl2ZS1saXN0ZW5pbmctc3lzdGVtcyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hc3RlcmlzazpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYXN0ZXJpc2spOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYXN5bW1ldHJpazpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYXN5bW1ldHJpayk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYXQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYXRsYXM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWF0bGFzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWF0bGFzc2lhbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYXRsYXNzaWFuKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWF0b206YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWF0b20pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYXRvbS1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWF0b20tYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWF1ZGlibGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWF1ZGlibGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYXVkaW8tZGVzY3JpcHRpb246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWF1ZGlvLWRlc2NyaXB0aW9uKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWF1dG9wcmVmaXhlcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYXV0b3ByZWZpeGVyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWF2aWFuZXg6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWF2aWFuZXgpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYXZpYXRvOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hdmlhdG8pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYXdhcmQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWF3YXJkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWF3czpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYXdzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWF4ZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYXhlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWF4ZS1iYXR0bGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWF4ZS1iYXR0bGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYmFieTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYmFieSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1iYWJ5LWNhcnJpYWdlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1iYWJ5LWNhcnJpYWdlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJhY2twYWNrOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1iYWNrcGFjayk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1iYWNrc3BhY2U6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJhY2tzcGFjZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1iYWNrd2FyZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYmFja3dhcmQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYmFjb246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJhY29uKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJhY3RlcmlhOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1iYWN0ZXJpYSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1iYWN0ZXJpdW06YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJhY3Rlcml1bSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1iYWRnZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYmFkZ2UpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYmFkZ2UtY2hlY2s6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJhZGdlLWNoZWNrKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJhZGdlLWRvbGxhcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYmFkZ2UtZG9sbGFyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJhZGdlLXBlcmNlbnQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJhZGdlLXBlcmNlbnQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYmFkZ2Utc2hlcmlmZjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYmFkZ2Utc2hlcmlmZik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1iYWRnZXItaG9uZXk6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJhZGdlci1ob25leSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1iYWdzLXNob3BwaW5nOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1iYWdzLXNob3BwaW5nKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJhaGFpOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1iYWhhaSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1iYWxhbmNlLXNjYWxlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1iYWxhbmNlLXNjYWxlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJhbGFuY2Utc2NhbGUtbGVmdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYmFsYW5jZS1zY2FsZS1sZWZ0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJhbGFuY2Utc2NhbGUtcmlnaHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJhbGFuY2Utc2NhbGUtcmlnaHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYmFsbC1waWxlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1iYWxsLXBpbGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYmFsbG90OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1iYWxsb3QpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYmFsbG90LWNoZWNrOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1iYWxsb3QtY2hlY2spOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYmFuOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1iYW4pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYmFuZC1haWQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJhbmQtYWlkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJhbmRjYW1wOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1iYW5kY2FtcCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1iYW5qbzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYmFuam8pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYmFyY29kZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYmFyY29kZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1iYXJjb2RlLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYmFyY29kZS1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYmFyY29kZS1yZWFkOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1iYXJjb2RlLXJlYWQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYmFyY29kZS1zY2FuOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1iYXJjb2RlLXNjYW4pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYmFyczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYmFycyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1iYXNlYmFsbDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYmFzZWJhbGwpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYmFzZWJhbGwtYmFsbDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYmFzZWJhbGwtYmFsbCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1iYXNrZXRiYWxsLWJhbGw6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJhc2tldGJhbGwtYmFsbCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1iYXNrZXRiYWxsLWhvb3A6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJhc2tldGJhbGwtaG9vcCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1iYXQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJhdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1iYXRoOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1iYXRoKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJhdHRlcnktYm9sdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYmF0dGVyeS1ib2x0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJhdHRlcnktZW1wdHk6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJhdHRlcnktZW1wdHkpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYmF0dGVyeS1mdWxsOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1iYXR0ZXJ5LWZ1bGwpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYmF0dGVyeS1oYWxmOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1iYXR0ZXJ5LWhhbGYpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYmF0dGVyeS1xdWFydGVyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1iYXR0ZXJ5LXF1YXJ0ZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYmF0dGVyeS1zbGFzaDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYmF0dGVyeS1zbGFzaCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1iYXR0ZXJ5LXRocmVlLXF1YXJ0ZXJzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1iYXR0ZXJ5LXRocmVlLXF1YXJ0ZXJzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJhdHRsZS1uZXQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJhdHRsZS1uZXQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYmVkOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1iZWQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYmVkLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYmVkLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1iZWQtYnVuazpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYmVkLWJ1bmspOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYmVkLWVtcHR5OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1iZWQtZW1wdHkpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYmVlcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYmVlcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1iZWhhbmNlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1iZWhhbmNlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJlaGFuY2Utc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1iZWhhbmNlLXNxdWFyZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1iZWxsOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1iZWxsKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJlbGwtZXhjbGFtYXRpb246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJlbGwtZXhjbGFtYXRpb24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYmVsbC1vbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYmVsbC1vbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1iZWxsLXBsdXM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJlbGwtcGx1cyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1iZWxsLXNjaG9vbDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYmVsbC1zY2hvb2wpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYmVsbC1zY2hvb2wtc2xhc2g6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJlbGwtc2Nob29sLXNsYXNoKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJlbGwtc2xhc2g6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJlbGwtc2xhc2gpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYmVsbHM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJlbGxzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJldGFtYXg6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJldGFtYXgpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYmV6aWVyLWN1cnZlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1iZXppZXItY3VydmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYmlibGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJpYmxlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJpY3ljbGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJpY3ljbGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYmlraW5nOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1iaWtpbmcpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYmlraW5nLW1vdW50YWluOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1iaWtpbmctbW91bnRhaW4pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYmltb2JqZWN0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1iaW1vYmplY3QpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYmlub2N1bGFyczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYmlub2N1bGFycyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1iaW9oYXphcmQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJpb2hhemFyZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1iaXJ0aGRheS1jYWtlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1iaXJ0aGRheS1jYWtlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJpdGJ1Y2tldDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYml0YnVja2V0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJpdGNvaW46YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJpdGNvaW4pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYml0eTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYml0eSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ibGFjay10aWU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJsYWNrLXRpZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ibGFja2JlcnJ5OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ibGFja2JlcnJ5KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJsYW5rZXQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJsYW5rZXQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYmxlbmRlcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYmxlbmRlcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ibGVuZGVyLXBob25lOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ibGVuZGVyLXBob25lKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJsaW5kOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ibGluZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ibGluZHM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJsaW5kcyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ibGluZHMtb3BlbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYmxpbmRzLW9wZW4pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYmxpbmRzLXJhaXNlZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYmxpbmRzLXJhaXNlZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ibG9nOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ibG9nKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJsb2dnZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJsb2dnZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYmxvZ2dlci1iOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ibG9nZ2VyLWIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYmx1ZXRvb3RoOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ibHVldG9vdGgpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYmx1ZXRvb3RoLWI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJsdWV0b290aC1iKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJvbGQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJvbGQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYm9sdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYm9sdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ib21iOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ib21iKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJvbmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJvbmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYm9uZS1icmVhazpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYm9uZS1icmVhayk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ib25nOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ib25nKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJvb2s6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJvb2spOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYm9vay1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJvb2stYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJvb2stZGVhZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYm9vay1kZWFkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJvb2staGVhcnQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJvb2staGVhcnQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYm9vay1tZWRpY2FsOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ib29rLW1lZGljYWwpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYm9vay1vcGVuOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ib29rLW9wZW4pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYm9vay1yZWFkZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJvb2stcmVhZGVyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJvb2stc3BlbGxzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ib29rLXNwZWxscyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ib29rLXVzZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJvb2stdXNlcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ib29rbWFyazpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYm9va21hcmspOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYm9va3M6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJvb2tzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJvb2tzLW1lZGljYWw6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJvb2tzLW1lZGljYWwpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYm9vbWJveDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYm9vbWJveCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ib290OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ib290KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJvb3RoLWN1cnRhaW46YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJvb3RoLWN1cnRhaW4pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYm9vdHN0cmFwOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ib290c3RyYXApOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYm9yZGVyLWFsbDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYm9yZGVyLWFsbCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ib3JkZXItYm90dG9tOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ib3JkZXItYm90dG9tKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJvcmRlci1jZW50ZXItaDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYm9yZGVyLWNlbnRlci1oKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJvcmRlci1jZW50ZXItdjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYm9yZGVyLWNlbnRlci12KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJvcmRlci1pbm5lcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYm9yZGVyLWlubmVyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJvcmRlci1sZWZ0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ib3JkZXItbGVmdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ib3JkZXItbm9uZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYm9yZGVyLW5vbmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYm9yZGVyLW91dGVyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ib3JkZXItb3V0ZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYm9yZGVyLXJpZ2h0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ib3JkZXItcmlnaHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYm9yZGVyLXN0eWxlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ib3JkZXItc3R5bGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYm9yZGVyLXN0eWxlLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYm9yZGVyLXN0eWxlLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ib3JkZXItdG9wOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ib3JkZXItdG9wKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJvdy1hcnJvdzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYm93LWFycm93KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJvd2xpbmctYmFsbDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYm93bGluZy1iYWxsKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJvd2xpbmctcGluczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYm93bGluZy1waW5zKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJveDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYm94KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJveC1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJveC1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYm94LWJhbGxvdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYm94LWJhbGxvdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ib3gtY2hlY2s6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJveC1jaGVjayk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ib3gtZnJhZ2lsZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYm94LWZyYWdpbGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYm94LWZ1bGw6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJveC1mdWxsKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJveC1oZWFydDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYm94LWhlYXJ0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJveC1vcGVuOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ib3gtb3Blbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ib3gtdGlzc3VlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ib3gtdGlzc3VlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJveC11cDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYm94LXVwKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJveC11c2Q6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJveC11c2QpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYm94ZXM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJveGVzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJveGVzLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYm94ZXMtYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJveGluZy1nbG92ZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYm94aW5nLWdsb3ZlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJyYWNrZXRzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1icmFja2V0cyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1icmFja2V0cy1jdXJseTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYnJhY2tldHMtY3VybHkpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYnJhaWxsZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYnJhaWxsZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1icmFpbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYnJhaW4pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYnJlYWQtbG9hZjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYnJlYWQtbG9hZik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1icmVhZC1zbGljZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYnJlYWQtc2xpY2UpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYnJpZWZjYXNlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1icmllZmNhc2UpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYnJpZWZjYXNlLW1lZGljYWw6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJyaWVmY2FzZS1tZWRpY2FsKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJyaW5nLWZvcndhcmQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJyaW5nLWZvcndhcmQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYnJpbmctZnJvbnQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJyaW5nLWZyb250KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJyb2FkY2FzdC10b3dlcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYnJvYWRjYXN0LXRvd2VyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJyb29tOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1icm9vbSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1icm93c2VyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1icm93c2VyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJydXNoOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1icnVzaCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1idGM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJ0Yyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1idWZmZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJ1ZmZlcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1idWc6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJ1Zyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1idWlsZGluZzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYnVpbGRpbmcpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYnVsbGhvcm46YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJ1bGxob3JuKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJ1bGxzZXllOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1idWxsc2V5ZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1idWxsc2V5ZS1hcnJvdzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYnVsbHNleWUtYXJyb3cpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYnVsbHNleWUtcG9pbnRlcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYnVsbHNleWUtcG9pbnRlcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1idXJnZXItc29kYTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYnVyZ2VyLXNvZGEpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYnVybjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYnVybik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1idXJvbW9iZWxleHBlcnRlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1idXJvbW9iZWxleHBlcnRlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJ1cnJpdG86YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJ1cnJpdG8pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYnVzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1idXMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYnVzLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYnVzLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1idXMtc2Nob29sOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1idXMtc2Nob29sKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJ1c2luZXNzLXRpbWU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJ1c2luZXNzLXRpbWUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYnV5LW4tbGFyZ2U6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJ1eS1uLWxhcmdlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJ1eXNlbGxhZHM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJ1eXNlbGxhZHMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2FiaW5ldC1maWxpbmc6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNhYmluZXQtZmlsaW5nKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNhY3R1czpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2FjdHVzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNhbGN1bGF0b3I6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNhbGN1bGF0b3IpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2FsY3VsYXRvci1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNhbGN1bGF0b3ItYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNhbGVuZGFyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jYWxlbmRhcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jYWxlbmRhci1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNhbGVuZGFyLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jYWxlbmRhci1jaGVjazpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2FsZW5kYXItY2hlY2spOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2FsZW5kYXItZGF5OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jYWxlbmRhci1kYXkpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2FsZW5kYXItZWRpdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2FsZW5kYXItZWRpdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jYWxlbmRhci1leGNsYW1hdGlvbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2FsZW5kYXItZXhjbGFtYXRpb24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2FsZW5kYXItbWludXM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNhbGVuZGFyLW1pbnVzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNhbGVuZGFyLXBsdXM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNhbGVuZGFyLXBsdXMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2FsZW5kYXItc3RhcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2FsZW5kYXItc3Rhcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jYWxlbmRhci10aW1lczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2FsZW5kYXItdGltZXMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2FsZW5kYXItd2VlazpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2FsZW5kYXItd2Vlayk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jYW1jb3JkZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNhbWNvcmRlcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jYW1lcmE6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNhbWVyYSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jYW1lcmEtYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jYW1lcmEtYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNhbWVyYS1ob21lOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jYW1lcmEtaG9tZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jYW1lcmEtbW92aWU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNhbWVyYS1tb3ZpZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jYW1lcmEtcG9sYXJvaWQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNhbWVyYS1wb2xhcm9pZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jYW1lcmEtcmV0cm86YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNhbWVyYS1yZXRybyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jYW1wZmlyZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2FtcGZpcmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2FtcGdyb3VuZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2FtcGdyb3VuZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jYW5hZGlhbi1tYXBsZS1sZWFmOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jYW5hZGlhbi1tYXBsZS1sZWFmKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNhbmRsZS1ob2xkZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNhbmRsZS1ob2xkZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2FuZHktY2FuZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2FuZHktY2FuZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jYW5keS1jb3JuOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jYW5keS1jb3JuKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNhbm5hYmlzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jYW5uYWJpcyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jYXBzdWxlczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2Fwc3VsZXMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2FyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jYXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2FyLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2FyLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jYXItYmF0dGVyeTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2FyLWJhdHRlcnkpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2FyLWJ1aWxkaW5nOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jYXItYnVpbGRpbmcpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2FyLWJ1bXA6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNhci1idW1wKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNhci1idXM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNhci1idXMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2FyLWNyYXNoOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jYXItY3Jhc2gpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2FyLWdhcmFnZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2FyLWdhcmFnZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jYXItbWVjaGFuaWM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNhci1tZWNoYW5pYyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jYXItc2lkZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2FyLXNpZGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2FyLXRpbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNhci10aWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNhci13YXNoOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jYXItd2FzaCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jYXJhdmFuOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jYXJhdmFuKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNhcmF2YW4tYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jYXJhdmFuLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jYXJldC1jaXJjbGUtZG93bjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2FyZXQtY2lyY2xlLWRvd24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2FyZXQtY2lyY2xlLWxlZnQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNhcmV0LWNpcmNsZS1sZWZ0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNhcmV0LWNpcmNsZS1yaWdodDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2FyZXQtY2lyY2xlLXJpZ2h0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNhcmV0LWNpcmNsZS11cDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2FyZXQtY2lyY2xlLXVwKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNhcmV0LWRvd246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNhcmV0LWRvd24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2FyZXQtbGVmdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2FyZXQtbGVmdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jYXJldC1yaWdodDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2FyZXQtcmlnaHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2FyZXQtc3F1YXJlLWRvd246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNhcmV0LXNxdWFyZS1kb3duKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNhcmV0LXNxdWFyZS1sZWZ0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jYXJldC1zcXVhcmUtbGVmdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jYXJldC1zcXVhcmUtcmlnaHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNhcmV0LXNxdWFyZS1yaWdodCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jYXJldC1zcXVhcmUtdXA6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNhcmV0LXNxdWFyZS11cCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jYXJldC11cDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2FyZXQtdXApOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2Fycm90OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jYXJyb3QpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2FyczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2Fycyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jYXJ0LWFycm93LWRvd246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNhcnQtYXJyb3ctZG93bik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jYXJ0LXBsdXM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNhcnQtcGx1cyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jYXNoLXJlZ2lzdGVyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jYXNoLXJlZ2lzdGVyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNhc3NldHRlLXRhcGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNhc3NldHRlLXRhcGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2F0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jYXQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2F0LXNwYWNlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jYXQtc3BhY2UpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2F1bGRyb246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNhdWxkcm9uKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNjLWFtYXpvbi1wYXk6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNjLWFtYXpvbi1wYXkpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2MtYW1leDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2MtYW1leCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jYy1hcHBsZS1wYXk6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNjLWFwcGxlLXBheSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jYy1kaW5lcnMtY2x1YjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2MtZGluZXJzLWNsdWIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2MtZGlzY292ZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNjLWRpc2NvdmVyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNjLWpjYjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2MtamNiKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNjLW1hc3RlcmNhcmQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNjLW1hc3RlcmNhcmQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2MtcGF5cGFsOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jYy1wYXlwYWwpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2Mtc3RyaXBlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jYy1zdHJpcGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2MtdmlzYTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2MtdmlzYSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jY3R2OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jY3R2KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNlbnRlcmNvZGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNlbnRlcmNvZGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2VudG9zOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jZW50b3MpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2VydGlmaWNhdGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNlcnRpZmljYXRlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNoYWlyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jaGFpcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jaGFpci1vZmZpY2U6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNoYWlyLW9mZmljZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jaGFsa2JvYXJkOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jaGFsa2JvYXJkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNoYWxrYm9hcmQtdGVhY2hlcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2hhbGtib2FyZC10ZWFjaGVyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNoYXJnaW5nLXN0YXRpb246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNoYXJnaW5nLXN0YXRpb24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2hhcnQtYXJlYTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2hhcnQtYXJlYSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jaGFydC1iYXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNoYXJ0LWJhcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jaGFydC1saW5lOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jaGFydC1saW5lKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNoYXJ0LWxpbmUtZG93bjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2hhcnQtbGluZS1kb3duKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNoYXJ0LW5ldHdvcms6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNoYXJ0LW5ldHdvcmspOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2hhcnQtcGllOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jaGFydC1waWUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2hhcnQtcGllLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2hhcnQtcGllLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jaGFydC1zY2F0dGVyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jaGFydC1zY2F0dGVyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNoZWNrOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jaGVjayk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jaGVjay1jaXJjbGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNoZWNrLWNpcmNsZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jaGVjay1kb3VibGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNoZWNrLWRvdWJsZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jaGVjay1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNoZWNrLXNxdWFyZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jaGVlc2U6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNoZWVzZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jaGVlc2Utc3dpc3M6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNoZWVzZS1zd2lzcyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jaGVlc2VidXJnZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNoZWVzZWJ1cmdlcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jaGVzczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2hlc3MpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2hlc3MtYmlzaG9wOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jaGVzcy1iaXNob3ApOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2hlc3MtYmlzaG9wLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2hlc3MtYmlzaG9wLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jaGVzcy1ib2FyZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2hlc3MtYm9hcmQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2hlc3MtY2xvY2s6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNoZXNzLWNsb2NrKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNoZXNzLWNsb2NrLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2hlc3MtY2xvY2stYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNoZXNzLWtpbmc6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNoZXNzLWtpbmcpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2hlc3Mta2luZy1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNoZXNzLWtpbmctYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNoZXNzLWtuaWdodDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2hlc3Mta25pZ2h0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNoZXNzLWtuaWdodC1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNoZXNzLWtuaWdodC1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2hlc3MtcGF3bjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2hlc3MtcGF3bik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jaGVzcy1wYXduLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2hlc3MtcGF3bi1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2hlc3MtcXVlZW46YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNoZXNzLXF1ZWVuKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNoZXNzLXF1ZWVuLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2hlc3MtcXVlZW4tYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNoZXNzLXJvb2s6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNoZXNzLXJvb2spOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2hlc3Mtcm9vay1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNoZXNzLXJvb2stYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNoZXZyb24tY2lyY2xlLWRvd246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNoZXZyb24tY2lyY2xlLWRvd24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2hldnJvbi1jaXJjbGUtbGVmdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2hldnJvbi1jaXJjbGUtbGVmdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jaGV2cm9uLWNpcmNsZS1yaWdodDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2hldnJvbi1jaXJjbGUtcmlnaHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2hldnJvbi1jaXJjbGUtdXA6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNoZXZyb24tY2lyY2xlLXVwKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNoZXZyb24tZG91YmxlLWRvd246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNoZXZyb24tZG91YmxlLWRvd24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2hldnJvbi1kb3VibGUtbGVmdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2hldnJvbi1kb3VibGUtbGVmdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jaGV2cm9uLWRvdWJsZS1yaWdodDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2hldnJvbi1kb3VibGUtcmlnaHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2hldnJvbi1kb3VibGUtdXA6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNoZXZyb24tZG91YmxlLXVwKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNoZXZyb24tZG93bjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2hldnJvbi1kb3duKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNoZXZyb24tbGVmdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2hldnJvbi1sZWZ0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNoZXZyb24tcmlnaHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNoZXZyb24tcmlnaHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2hldnJvbi1zcXVhcmUtZG93bjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2hldnJvbi1zcXVhcmUtZG93bik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jaGV2cm9uLXNxdWFyZS1sZWZ0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jaGV2cm9uLXNxdWFyZS1sZWZ0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNoZXZyb24tc3F1YXJlLXJpZ2h0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jaGV2cm9uLXNxdWFyZS1yaWdodCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jaGV2cm9uLXNxdWFyZS11cDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2hldnJvbi1zcXVhcmUtdXApOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2hldnJvbi11cDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2hldnJvbi11cCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jaGlsZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2hpbGQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2hpbW5leTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2hpbW5leSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jaHJvbWU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNocm9tZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jaHJvbWVjYXN0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jaHJvbWVjYXN0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNodXJjaDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2h1cmNoKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNpcmNsZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2lyY2xlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNpcmNsZS1ub3RjaDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2lyY2xlLW5vdGNoKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNpdHk6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNpdHkpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2xhcmluZXQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNsYXJpbmV0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNsYXctbWFya3M6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNsYXctbWFya3MpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2xpbmljLW1lZGljYWw6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNsaW5pYy1tZWRpY2FsKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNsaXBib2FyZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2xpcGJvYXJkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNsaXBib2FyZC1jaGVjazpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2xpcGJvYXJkLWNoZWNrKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNsaXBib2FyZC1saXN0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jbGlwYm9hcmQtbGlzdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jbGlwYm9hcmQtbGlzdC1jaGVjazpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2xpcGJvYXJkLWxpc3QtY2hlY2spOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2xpcGJvYXJkLXByZXNjcmlwdGlvbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2xpcGJvYXJkLXByZXNjcmlwdGlvbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jbGlwYm9hcmQtdXNlcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2xpcGJvYXJkLXVzZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2xvY2s6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNsb2NrKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNsb25lOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jbG9uZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jbG9zZWQtY2FwdGlvbmluZzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2xvc2VkLWNhcHRpb25pbmcpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2xvdWQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNsb3VkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNsb3VkLWRvd25sb2FkOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jbG91ZC1kb3dubG9hZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jbG91ZC1kb3dubG9hZC1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNsb3VkLWRvd25sb2FkLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jbG91ZC1kcml6emxlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jbG91ZC1kcml6emxlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNsb3VkLWhhaWw6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNsb3VkLWhhaWwpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2xvdWQtaGFpbC1taXhlZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2xvdWQtaGFpbC1taXhlZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jbG91ZC1tZWF0YmFsbDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2xvdWQtbWVhdGJhbGwpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2xvdWQtbW9vbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2xvdWQtbW9vbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jbG91ZC1tb29uLXJhaW46YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNsb3VkLW1vb24tcmFpbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jbG91ZC1tdXNpYzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2xvdWQtbXVzaWMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2xvdWQtcmFpbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2xvdWQtcmFpbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jbG91ZC1yYWluYm93OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jbG91ZC1yYWluYm93KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNsb3VkLXNob3dlcnM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNsb3VkLXNob3dlcnMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2xvdWQtc2hvd2Vycy1oZWF2eTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2xvdWQtc2hvd2Vycy1oZWF2eSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jbG91ZC1zbGVldDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2xvdWQtc2xlZXQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2xvdWQtc25vdzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2xvdWQtc25vdyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jbG91ZC1zdW46YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNsb3VkLXN1bik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jbG91ZC1zdW4tcmFpbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2xvdWQtc3VuLXJhaW4pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2xvdWQtdXBsb2FkOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jbG91ZC11cGxvYWQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2xvdWQtdXBsb2FkLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2xvdWQtdXBsb2FkLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jbG91ZGZsYXJlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jbG91ZGZsYXJlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNsb3VkczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2xvdWRzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNsb3Vkcy1tb29uOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jbG91ZHMtbW9vbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jbG91ZHMtc3VuOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jbG91ZHMtc3VuKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNsb3Vkc2NhbGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNsb3Vkc2NhbGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2xvdWRzbWl0aDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2xvdWRzbWl0aCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jbG91ZHZlcnNpZnk6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNsb3VkdmVyc2lmeSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jbHViOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jbHViKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNvY2t0YWlsOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jb2NrdGFpbCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jb2RlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jb2RlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNvZGUtYnJhbmNoOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jb2RlLWJyYW5jaCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jb2RlLWNvbW1pdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY29kZS1jb21taXQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY29kZS1tZXJnZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY29kZS1tZXJnZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jb2RlcGVuOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jb2RlcGVuKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNvZGllcGllOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jb2RpZXBpZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jb2ZmZWU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNvZmZlZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jb2ZmZWUtcG90OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jb2ZmZWUtcG90KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNvZmZlZS10b2dvOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jb2ZmZWUtdG9nbyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jb2ZmaW46YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNvZmZpbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jb2ZmaW4tY3Jvc3M6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNvZmZpbi1jcm9zcyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jb2c6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNvZyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jb2dzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jb2dzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNvaW46YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNvaW4pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY29pbnM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNvaW5zKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNvbHVtbnM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNvbHVtbnMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY29tZXQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNvbWV0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNvbW1lbnQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNvbW1lbnQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY29tbWVudC1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNvbW1lbnQtYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNvbW1lbnQtYWx0LWNoZWNrOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jb21tZW50LWFsdC1jaGVjayk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jb21tZW50LWFsdC1kb2xsYXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNvbW1lbnQtYWx0LWRvbGxhcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jb21tZW50LWFsdC1kb3RzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jb21tZW50LWFsdC1kb3RzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNvbW1lbnQtYWx0LWVkaXQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNvbW1lbnQtYWx0LWVkaXQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY29tbWVudC1hbHQtZXhjbGFtYXRpb246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNvbW1lbnQtYWx0LWV4Y2xhbWF0aW9uKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNvbW1lbnQtYWx0LWxpbmVzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jb21tZW50LWFsdC1saW5lcyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jb21tZW50LWFsdC1tZWRpY2FsOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jb21tZW50LWFsdC1tZWRpY2FsKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNvbW1lbnQtYWx0LW1pbnVzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jb21tZW50LWFsdC1taW51cyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jb21tZW50LWFsdC1tdXNpYzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY29tbWVudC1hbHQtbXVzaWMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY29tbWVudC1hbHQtcGx1czpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY29tbWVudC1hbHQtcGx1cyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jb21tZW50LWFsdC1zbGFzaDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY29tbWVudC1hbHQtc2xhc2gpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY29tbWVudC1hbHQtc21pbGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNvbW1lbnQtYWx0LXNtaWxlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNvbW1lbnQtYWx0LXRpbWVzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jb21tZW50LWFsdC10aW1lcyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jb21tZW50LWNoZWNrOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jb21tZW50LWNoZWNrKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNvbW1lbnQtZG9sbGFyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jb21tZW50LWRvbGxhcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jb21tZW50LWRvdHM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNvbW1lbnQtZG90cyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jb21tZW50LWVkaXQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNvbW1lbnQtZWRpdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jb21tZW50LWV4Y2xhbWF0aW9uOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jb21tZW50LWV4Y2xhbWF0aW9uKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNvbW1lbnQtbGluZXM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNvbW1lbnQtbGluZXMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY29tbWVudC1tZWRpY2FsOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jb21tZW50LW1lZGljYWwpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY29tbWVudC1taW51czpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY29tbWVudC1taW51cyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jb21tZW50LW11c2ljOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jb21tZW50LW11c2ljKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNvbW1lbnQtcGx1czpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY29tbWVudC1wbHVzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNvbW1lbnQtc2xhc2g6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNvbW1lbnQtc2xhc2gpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY29tbWVudC1zbWlsZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY29tbWVudC1zbWlsZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jb21tZW50LXRpbWVzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jb21tZW50LXRpbWVzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNvbW1lbnRzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jb21tZW50cyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jb21tZW50cy1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNvbW1lbnRzLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jb21tZW50cy1hbHQtZG9sbGFyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jb21tZW50cy1hbHQtZG9sbGFyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNvbW1lbnRzLWRvbGxhcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY29tbWVudHMtZG9sbGFyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNvbXBhY3QtZGlzYzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY29tcGFjdC1kaXNjKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNvbXBhc3M6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNvbXBhc3MpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY29tcGFzcy1zbGFzaDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY29tcGFzcy1zbGFzaCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jb21wcmVzczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY29tcHJlc3MpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY29tcHJlc3MtYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jb21wcmVzcy1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY29tcHJlc3MtYXJyb3dzLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY29tcHJlc3MtYXJyb3dzLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jb21wcmVzcy13aWRlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jb21wcmVzcy13aWRlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNvbXB1dGVyLWNsYXNzaWM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNvbXB1dGVyLWNsYXNzaWMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY29tcHV0ZXItc3BlYWtlcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY29tcHV0ZXItc3BlYWtlcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jb25jaWVyZ2UtYmVsbDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY29uY2llcmdlLWJlbGwpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY29uZmx1ZW5jZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY29uZmx1ZW5jZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jb25uZWN0ZGV2ZWxvcDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY29ubmVjdGRldmVsb3ApOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY29uc3RydWN0aW9uOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jb25zdHJ1Y3Rpb24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY29udGFpbmVyLXN0b3JhZ2U6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNvbnRhaW5lci1zdG9yYWdlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNvbnRhbzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY29udGFvKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNvbnZleW9yLWJlbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNvbnZleW9yLWJlbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY29udmV5b3ItYmVsdC1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNvbnZleW9yLWJlbHQtYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNvb2tpZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY29va2llKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNvb2tpZS1iaXRlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jb29raWUtYml0ZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jb3B5OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jb3B5KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNvcHlyaWdodDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY29weXJpZ2h0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNvcm46YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNvcm4pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY290dG9uLWJ1cmVhdTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY290dG9uLWJ1cmVhdSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jb3VjaDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY291Y2gpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY293OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jb3cpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY293YmVsbDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY293YmVsbCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jb3diZWxsLW1vcmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNvd2JlbGwtbW9yZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jcGFuZWw6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNwYW5lbCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jcmVhdGl2ZS1jb21tb25zOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jcmVhdGl2ZS1jb21tb25zKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNyZWF0aXZlLWNvbW1vbnMtYnk6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNyZWF0aXZlLWNvbW1vbnMtYnkpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY3JlYXRpdmUtY29tbW9ucy1uYzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY3JlYXRpdmUtY29tbW9ucy1uYyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jcmVhdGl2ZS1jb21tb25zLW5jLWV1OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jcmVhdGl2ZS1jb21tb25zLW5jLWV1KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNyZWF0aXZlLWNvbW1vbnMtbmMtanA6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNyZWF0aXZlLWNvbW1vbnMtbmMtanApOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY3JlYXRpdmUtY29tbW9ucy1uZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY3JlYXRpdmUtY29tbW9ucy1uZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jcmVhdGl2ZS1jb21tb25zLXBkOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jcmVhdGl2ZS1jb21tb25zLXBkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNyZWF0aXZlLWNvbW1vbnMtcGQtYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jcmVhdGl2ZS1jb21tb25zLXBkLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jcmVhdGl2ZS1jb21tb25zLXJlbWl4OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jcmVhdGl2ZS1jb21tb25zLXJlbWl4KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNyZWF0aXZlLWNvbW1vbnMtc2E6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNyZWF0aXZlLWNvbW1vbnMtc2EpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY3JlYXRpdmUtY29tbW9ucy1zYW1wbGluZzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY3JlYXRpdmUtY29tbW9ucy1zYW1wbGluZyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jcmVhdGl2ZS1jb21tb25zLXNhbXBsaW5nLXBsdXM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNyZWF0aXZlLWNvbW1vbnMtc2FtcGxpbmctcGx1cyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jcmVhdGl2ZS1jb21tb25zLXNoYXJlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jcmVhdGl2ZS1jb21tb25zLXNoYXJlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNyZWF0aXZlLWNvbW1vbnMtemVybzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY3JlYXRpdmUtY29tbW9ucy16ZXJvKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNyZWRpdC1jYXJkOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jcmVkaXQtY2FyZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jcmVkaXQtY2FyZC1ibGFuazpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY3JlZGl0LWNhcmQtYmxhbmspOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY3JlZGl0LWNhcmQtZnJvbnQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNyZWRpdC1jYXJkLWZyb250KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNyaWNrZXQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNyaWNrZXQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY3JpdGljYWwtcm9sZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY3JpdGljYWwtcm9sZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jcm9pc3NhbnQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNyb2lzc2FudCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jcm9wOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jcm9wKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNyb3AtYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jcm9wLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jcm9zczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY3Jvc3MpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY3Jvc3NoYWlyczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY3Jvc3NoYWlycyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jcm93OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jcm93KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNyb3duOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jcm93bik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jcnV0Y2g6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNydXRjaCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jcnV0Y2hlczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY3J1dGNoZXMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY3NzMzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY3NzMyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jc3MzLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY3NzMy1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY3ViZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY3ViZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jdWJlczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY3ViZXMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY3VybGluZzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY3VybGluZyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jdXQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWN1dCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jdXR0bGVmaXNoOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jdXR0bGVmaXNoKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWQtYW5kLWQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWQtYW5kLWQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZC1hbmQtZC1iZXlvbmQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWQtYW5kLWQtYmV5b25kKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWRhZ2dlcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZGFnZ2VyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWRhaWx5bW90aW9uOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1kYWlseW1vdGlvbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1kYXNoY3ViZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZGFzaGN1YmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZGF0YWJhc2U6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWRhdGFiYXNlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWRlYWY6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWRlYWYpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZGVidWc6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWRlYnVnKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWRlZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWRlZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZGVlci1ydWRvbHBoOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1kZWVyLXJ1ZG9scGgpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZGVlemVyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1kZWV6ZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZGVsaWNpb3VzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1kZWxpY2lvdXMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZGVtb2NyYXQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWRlbW9jcmF0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWRlcGxveWRvZzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZGVwbG95ZG9nKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWRlc2twcm86YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWRlc2twcm8pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZGVza3RvcDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZGVza3RvcCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1kZXNrdG9wLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZGVza3RvcC1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZGV2OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1kZXYpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZGV2aWFudGFydDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZGV2aWFudGFydCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1kZXdwb2ludDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZGV3cG9pbnQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZGhhcm1hY2hha3JhOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1kaGFybWFjaGFrcmEpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZGhsOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1kaGwpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZGlhZ25vc2VzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1kaWFnbm9zZXMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZGlhbW9uZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZGlhbW9uZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1kaWFzcG9yYTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZGlhc3BvcmEpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZGljZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZGljZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1kaWNlLWQxMDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZGljZS1kMTApOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZGljZS1kMTI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWRpY2UtZDEyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWRpY2UtZDIwOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1kaWNlLWQyMCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1kaWNlLWQ0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1kaWNlLWQ0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWRpY2UtZDY6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWRpY2UtZDYpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZGljZS1kODpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZGljZS1kOCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1kaWNlLWZpdmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWRpY2UtZml2ZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1kaWNlLWZvdXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWRpY2UtZm91cik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1kaWNlLW9uZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZGljZS1vbmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZGljZS1zaXg6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWRpY2Utc2l4KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWRpY2UtdGhyZWU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWRpY2UtdGhyZWUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZGljZS10d286YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWRpY2UtdHdvKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWRpZ2c6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWRpZ2cpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZGlnZ2luZzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZGlnZ2luZyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1kaWdpdGFsLW9jZWFuOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1kaWdpdGFsLW9jZWFuKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWRpZ2l0YWwtdGFjaG9ncmFwaDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZGlnaXRhbC10YWNob2dyYXBoKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWRpcGxvbWE6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWRpcGxvbWEpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZGlyZWN0aW9uczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZGlyZWN0aW9ucyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1kaXNjLWRyaXZlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1kaXNjLWRyaXZlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWRpc2NvcmQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWRpc2NvcmQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZGlzY291cnNlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1kaXNjb3Vyc2UpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZGlzZWFzZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZGlzZWFzZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1kaXZpZGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWRpdmlkZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1kaXp6eTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZGl6enkpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZG5hOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1kbmEpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZG8tbm90LWVudGVyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1kby1ub3QtZW50ZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZG9jaHViOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1kb2NodWIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZG9ja2VyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1kb2NrZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZG9nOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1kb2cpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZG9nLWxlYXNoZWQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWRvZy1sZWFzaGVkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWRvbGxhci1zaWduOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1kb2xsYXItc2lnbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1kb2xseTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZG9sbHkpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZG9sbHktZW1wdHk6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWRvbGx5LWVtcHR5KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWRvbGx5LWZsYXRiZWQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWRvbGx5LWZsYXRiZWQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZG9sbHktZmxhdGJlZC1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWRvbGx5LWZsYXRiZWQtYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWRvbGx5LWZsYXRiZWQtZW1wdHk6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWRvbGx5LWZsYXRiZWQtZW1wdHkpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZG9uYXRlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1kb25hdGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZG9vci1jbG9zZWQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWRvb3ItY2xvc2VkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWRvb3Itb3BlbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZG9vci1vcGVuKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWRvdC1jaXJjbGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWRvdC1jaXJjbGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZG92ZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZG92ZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1kb3dubG9hZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZG93bmxvYWQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZHJhZnQyZGlnaXRhbDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZHJhZnQyZGlnaXRhbCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1kcmFmdGluZy1jb21wYXNzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1kcmFmdGluZy1jb21wYXNzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWRyYWdvbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZHJhZ29uKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWRyYXctY2lyY2xlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1kcmF3LWNpcmNsZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1kcmF3LXBvbHlnb246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWRyYXctcG9seWdvbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1kcmF3LXNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZHJhdy1zcXVhcmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZHJlaWRlbDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZHJlaWRlbCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1kcmliYmJsZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZHJpYmJibGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZHJpYmJibGUtc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1kcmliYmJsZS1zcXVhcmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZHJvbmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWRyb25lKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWRyb25lLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZHJvbmUtYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWRyb3Bib3g6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWRyb3Bib3gpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZHJ1bTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZHJ1bSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1kcnVtLXN0ZWVscGFuOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1kcnVtLXN0ZWVscGFuKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWRydW1zdGljazpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZHJ1bXN0aWNrKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWRydW1zdGljay1iaXRlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1kcnVtc3RpY2stYml0ZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1kcnVwYWw6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWRydXBhbCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1kcnllcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZHJ5ZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZHJ5ZXItYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1kcnllci1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZHVjazpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZHVjayk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1kdW1iYmVsbDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZHVtYmJlbGwpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZHVtcHN0ZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWR1bXBzdGVyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWR1bXBzdGVyLWZpcmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWR1bXBzdGVyLWZpcmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZHVuZ2VvbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZHVuZ2Vvbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1keWFsb2c6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWR5YWxvZyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1lYXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWVhcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1lYXItbXVmZnM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWVhci1tdWZmcyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1lYXJseWJpcmRzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1lYXJseWJpcmRzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWViYXk6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWViYXkpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZWNsaXBzZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZWNsaXBzZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1lY2xpcHNlLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZWNsaXBzZS1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZWRnZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZWRnZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1lZGdlLWxlZ2FjeTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZWRnZS1sZWdhY3kpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZWRpdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZWRpdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1lZ2c6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWVnZyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1lZ2ctZnJpZWQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWVnZy1mcmllZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1lamVjdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZWplY3QpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZWxlbWVudG9yOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1lbGVtZW50b3IpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZWxlcGhhbnQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWVsZXBoYW50KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWVsbGlwc2lzLWg6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWVsbGlwc2lzLWgpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZWxsaXBzaXMtaC1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWVsbGlwc2lzLWgtYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWVsbGlwc2lzLXY6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWVsbGlwc2lzLXYpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZWxsaXBzaXMtdi1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWVsbGlwc2lzLXYtYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWVsbG86YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWVsbG8pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZW1iZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWVtYmVyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWVtcGlyZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZW1waXJlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWVtcHR5LXNldDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZW1wdHktc2V0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWVuZ2luZS13YXJuaW5nOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1lbmdpbmUtd2FybmluZyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1lbnZlbG9wZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZW52ZWxvcGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZW52ZWxvcGUtb3BlbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZW52ZWxvcGUtb3Blbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1lbnZlbG9wZS1vcGVuLWRvbGxhcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZW52ZWxvcGUtb3Blbi1kb2xsYXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZW52ZWxvcGUtb3Blbi10ZXh0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1lbnZlbG9wZS1vcGVuLXRleHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZW52ZWxvcGUtc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1lbnZlbG9wZS1zcXVhcmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZW52aXJhOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1lbnZpcmEpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZXF1YWxzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1lcXVhbHMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZXJhc2VyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1lcmFzZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZXJsYW5nOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1lcmxhbmcpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZXRoZXJldW06YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWV0aGVyZXVtKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWV0aGVybmV0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ldGhlcm5ldCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ldHN5OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ldHN5KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWV1cm8tc2lnbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZXVyby1zaWduKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWV2ZXJub3RlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ldmVybm90ZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1leGNoYW5nZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZXhjaGFuZ2UpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZXhjaGFuZ2UtYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1leGNoYW5nZS1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZXhjbGFtYXRpb246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWV4Y2xhbWF0aW9uKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWV4Y2xhbWF0aW9uLWNpcmNsZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZXhjbGFtYXRpb24tY2lyY2xlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWV4Y2xhbWF0aW9uLXNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZXhjbGFtYXRpb24tc3F1YXJlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWV4Y2xhbWF0aW9uLXRyaWFuZ2xlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1leGNsYW1hdGlvbi10cmlhbmdsZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1leHBhbmQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWV4cGFuZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1leHBhbmQtYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1leHBhbmQtYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWV4cGFuZC1hcnJvd3M6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWV4cGFuZC1hcnJvd3MpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZXhwYW5kLWFycm93cy1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWV4cGFuZC1hcnJvd3MtYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWV4cGFuZC13aWRlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1leHBhbmQtd2lkZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1leHBlZGl0ZWRzc2w6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWV4cGVkaXRlZHNzbCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1leHRlcm5hbC1saW5rOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1leHRlcm5hbC1saW5rKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWV4dGVybmFsLWxpbmstYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1leHRlcm5hbC1saW5rLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1leHRlcm5hbC1saW5rLXNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZXh0ZXJuYWwtbGluay1zcXVhcmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZXh0ZXJuYWwtbGluay1zcXVhcmUtYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1leHRlcm5hbC1saW5rLXNxdWFyZS1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZXllOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1leWUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZXllLWRyb3BwZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWV5ZS1kcm9wcGVyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWV5ZS1ldmlsOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1leWUtZXZpbCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1leWUtc2xhc2g6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWV5ZS1zbGFzaCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1mYWNlYm9vazpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZmFjZWJvb2spOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmFjZWJvb2stZjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZmFjZWJvb2stZik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1mYWNlYm9vay1tZXNzZW5nZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZhY2Vib29rLW1lc3Nlbmdlcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1mYWNlYm9vay1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZhY2Vib29rLXNxdWFyZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1mYW46YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZhbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1mYW4tdGFibGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZhbi10YWJsZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1mYW50YXN5LWZsaWdodC1nYW1lczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZmFudGFzeS1mbGlnaHQtZ2FtZXMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmFybTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZmFybSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1mYXN0LWJhY2t3YXJkOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1mYXN0LWJhY2t3YXJkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZhc3QtZm9yd2FyZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZmFzdC1mb3J3YXJkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZhdWNldDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZmF1Y2V0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZhdWNldC1kcmlwOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1mYXVjZXQtZHJpcCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1mYXg6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZheCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1mZWF0aGVyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1mZWF0aGVyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZlYXRoZXItYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1mZWF0aGVyLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1mZWRleDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZmVkZXgpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmVkb3JhOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1mZWRvcmEpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmVtYWxlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1mZW1hbGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmllbGQtaG9ja2V5OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1maWVsZC1ob2NrZXkpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmlnaHRlci1qZXQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZpZ2h0ZXItamV0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZpZ21hOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1maWdtYSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1maWxlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1maWxlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZpbGUtYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1maWxlLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1maWxlLWFyY2hpdmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZpbGUtYXJjaGl2ZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1maWxlLWF1ZGlvOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1maWxlLWF1ZGlvKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZpbGUtY2VydGlmaWNhdGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZpbGUtY2VydGlmaWNhdGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmlsZS1jaGFydC1saW5lOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1maWxlLWNoYXJ0LWxpbmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmlsZS1jaGFydC1waWU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZpbGUtY2hhcnQtcGllKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZpbGUtY2hlY2s6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZpbGUtY2hlY2spOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmlsZS1jb2RlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1maWxlLWNvZGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmlsZS1jb250cmFjdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZmlsZS1jb250cmFjdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1maWxlLWNzdjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZmlsZS1jc3YpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmlsZS1kb3dubG9hZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZmlsZS1kb3dubG9hZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1maWxlLWVkaXQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZpbGUtZWRpdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1maWxlLWV4Y2VsOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1maWxlLWV4Y2VsKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZpbGUtZXhjbGFtYXRpb246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZpbGUtZXhjbGFtYXRpb24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmlsZS1leHBvcnQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZpbGUtZXhwb3J0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZpbGUtaW1hZ2U6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZpbGUtaW1hZ2UpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmlsZS1pbXBvcnQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZpbGUtaW1wb3J0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZpbGUtaW52b2ljZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZmlsZS1pbnZvaWNlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZpbGUtaW52b2ljZS1kb2xsYXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZpbGUtaW52b2ljZS1kb2xsYXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmlsZS1tZWRpY2FsOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1maWxlLW1lZGljYWwpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmlsZS1tZWRpY2FsLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZmlsZS1tZWRpY2FsLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1maWxlLW1pbnVzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1maWxlLW1pbnVzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZpbGUtbXVzaWM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZpbGUtbXVzaWMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmlsZS1wZGY6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZpbGUtcGRmKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZpbGUtcGx1czpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZmlsZS1wbHVzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZpbGUtcG93ZXJwb2ludDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZmlsZS1wb3dlcnBvaW50KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZpbGUtcHJlc2NyaXB0aW9uOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1maWxlLXByZXNjcmlwdGlvbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1maWxlLXNlYXJjaDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZmlsZS1zZWFyY2gpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmlsZS1zaWduYXR1cmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZpbGUtc2lnbmF0dXJlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZpbGUtc3ByZWFkc2hlZXQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZpbGUtc3ByZWFkc2hlZXQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmlsZS10aW1lczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZmlsZS10aW1lcyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1maWxlLXVwbG9hZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZmlsZS11cGxvYWQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmlsZS11c2VyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1maWxlLXVzZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmlsZS12aWRlbzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZmlsZS12aWRlbyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1maWxlLXdvcmQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZpbGUtd29yZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1maWxlcy1tZWRpY2FsOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1maWxlcy1tZWRpY2FsKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZpbGw6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZpbGwpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmlsbC1kcmlwOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1maWxsLWRyaXApOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmlsbTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZmlsbSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1maWxtLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZmlsbS1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmlsbS1jYW5pc3RlcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZmlsbS1jYW5pc3Rlcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1maWx0ZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZpbHRlcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1maW5nZXJwcmludDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZmluZ2VycHJpbnQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmlyZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZmlyZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1maXJlLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZmlyZS1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmlyZS1leHRpbmd1aXNoZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZpcmUtZXh0aW5ndWlzaGVyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZpcmUtc21va2U6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZpcmUtc21va2UpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmlyZWZveDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZmlyZWZveCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1maXJlZm94LWJyb3dzZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZpcmVmb3gtYnJvd3Nlcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1maXJlcGxhY2U6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZpcmVwbGFjZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1maXJzdC1haWQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZpcnN0LWFpZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1maXJzdC1vcmRlcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZmlyc3Qtb3JkZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmlyc3Qtb3JkZXItYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1maXJzdC1vcmRlci1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmlyc3RkcmFmdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZmlyc3RkcmFmdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1maXNoOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1maXNoKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZpc2gtY29va2VkOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1maXNoLWNvb2tlZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1maXN0LXJhaXNlZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZmlzdC1yYWlzZWQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmxhZzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZmxhZyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1mbGFnLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZmxhZy1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmxhZy1jaGVja2VyZWQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZsYWctY2hlY2tlcmVkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZsYWctdXNhOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1mbGFnLXVzYSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1mbGFtZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZmxhbWUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmxhc2hsaWdodDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZmxhc2hsaWdodCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1mbGFzazpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZmxhc2spOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmxhc2stcG9pc29uOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1mbGFzay1wb2lzb24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmxhc2stcG90aW9uOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1mbGFzay1wb3Rpb24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmxpY2tyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1mbGlja3IpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmxpcGJvYXJkOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1mbGlwYm9hcmQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmxvd2VyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1mbG93ZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmxvd2VyLWRhZmZvZGlsOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1mbG93ZXItZGFmZm9kaWwpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmxvd2VyLXR1bGlwOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1mbG93ZXItdHVsaXApOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmx1c2hlZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZmx1c2hlZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1mbHV0ZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZmx1dGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmx1eC1jYXBhY2l0b3I6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZsdXgtY2FwYWNpdG9yKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZseTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZmx5KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZvZzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZm9nKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZvbGRlcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZm9sZGVyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZvbGRlci1kb3dubG9hZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZm9sZGVyLWRvd25sb2FkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZvbGRlci1taW51czpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZm9sZGVyLW1pbnVzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZvbGRlci1vcGVuOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1mb2xkZXItb3Blbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1mb2xkZXItcGx1czpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZm9sZGVyLXBsdXMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZm9sZGVyLXRpbWVzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1mb2xkZXItdGltZXMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZm9sZGVyLXRyZWU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZvbGRlci10cmVlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZvbGRlci11cGxvYWQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZvbGRlci11cGxvYWQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZm9sZGVyczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZm9sZGVycyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1mb250OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1mb250KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZvbnQtYXdlc29tZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZm9udC1hd2Vzb21lKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZvbnQtYXdlc29tZS1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZvbnQtYXdlc29tZS1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZm9udC1hd2Vzb21lLWZsYWc6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZvbnQtYXdlc29tZS1mbGFnKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZvbnQtYXdlc29tZS1sb2dvLWZ1bGw6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZvbnQtYXdlc29tZS1sb2dvLWZ1bGwpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZm9udC1jYXNlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1mb250LWNhc2UpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZm9udGljb25zOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1mb250aWNvbnMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZm9udGljb25zLWZpOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1mb250aWNvbnMtZmkpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZm9vdGJhbGwtYmFsbDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZm9vdGJhbGwtYmFsbCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1mb290YmFsbC1oZWxtZXQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZvb3RiYWxsLWhlbG1ldCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1mb3JrbGlmdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZm9ya2xpZnQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZm9ydC1hd2Vzb21lOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1mb3J0LWF3ZXNvbWUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZm9ydC1hd2Vzb21lLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZm9ydC1hd2Vzb21lLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1mb3J1bWJlZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZm9ydW1iZWUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZm9yd2FyZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZm9yd2FyZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1mb3Vyc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1mb3Vyc3F1YXJlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZyYWdpbGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZyYWdpbGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZnJlZS1jb2RlLWNhbXA6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZyZWUtY29kZS1jYW1wKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZyZWVic2Q6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZyZWVic2QpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZnJlbmNoLWZyaWVzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1mcmVuY2gtZnJpZXMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZnJvZzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZnJvZyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1mcm9zdHktaGVhZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZnJvc3R5LWhlYWQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZnJvd246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZyb3duKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZyb3duLW9wZW46YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZyb3duLW9wZW4pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZnVsY3J1bTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZnVsY3J1bSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1mdW5jdGlvbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZnVuY3Rpb24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZnVubmVsLWRvbGxhcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZnVubmVsLWRvbGxhcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1mdXRib2w6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZ1dGJvbCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1nYWxhY3RpYy1yZXB1YmxpYzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ2FsYWN0aWMtcmVwdWJsaWMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ2FsYWN0aWMtc2VuYXRlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1nYWxhY3RpYy1zZW5hdGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ2FsYXh5OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1nYWxheHkpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ2FtZS1ib2FyZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ2FtZS1ib2FyZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1nYW1lLWJvYXJkLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ2FtZS1ib2FyZC1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ2FtZS1jb25zb2xlLWhhbmRoZWxkOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1nYW1lLWNvbnNvbGUtaGFuZGhlbGQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ2FtZXBhZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ2FtZXBhZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1nYW1lcGFkLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ2FtZXBhZC1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ2FyYWdlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1nYXJhZ2UpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ2FyYWdlLWNhcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ2FyYWdlLWNhcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1nYXJhZ2Utb3BlbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ2FyYWdlLW9wZW4pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ2FzLXB1bXA6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWdhcy1wdW1wKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWdhcy1wdW1wLXNsYXNoOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1nYXMtcHVtcC1zbGFzaCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1nYXZlbDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ2F2ZWwpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ2VtOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1nZW0pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ2VuZGVybGVzczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ2VuZGVybGVzcyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1nZXQtcG9ja2V0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1nZXQtcG9ja2V0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWdnOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1nZyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1nZy1jaXJjbGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWdnLWNpcmNsZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1naG9zdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ2hvc3QpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ2lmdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ2lmdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1naWZ0LWNhcmQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWdpZnQtY2FyZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1naWZ0czpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ2lmdHMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ2luZ2VyYnJlYWQtbWFuOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1naW5nZXJicmVhZC1tYW4pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ2l0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1naXQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ2l0LWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ2l0LWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1naXQtc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1naXQtc3F1YXJlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWdpdGh1YjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ2l0aHViKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWdpdGh1Yi1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWdpdGh1Yi1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ2l0aHViLXNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ2l0aHViLXNxdWFyZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1naXRrcmFrZW46YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWdpdGtyYWtlbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1naXRsYWI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWdpdGxhYik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1naXR0ZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWdpdHRlcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1nbGFzczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ2xhc3MpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ2xhc3MtY2hhbXBhZ25lOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1nbGFzcy1jaGFtcGFnbmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ2xhc3MtY2hlZXJzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1nbGFzcy1jaGVlcnMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ2xhc3MtY2l0cnVzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1nbGFzcy1jaXRydXMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ2xhc3MtbWFydGluaTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ2xhc3MtbWFydGluaSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1nbGFzcy1tYXJ0aW5pLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ2xhc3MtbWFydGluaS1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ2xhc3Mtd2hpc2tleTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ2xhc3Mtd2hpc2tleSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1nbGFzcy13aGlza2V5LXJvY2tzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1nbGFzcy13aGlza2V5LXJvY2tzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWdsYXNzZXM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWdsYXNzZXMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ2xhc3Nlcy1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWdsYXNzZXMtYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWdsaWRlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1nbGlkZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1nbGlkZS1nOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1nbGlkZS1nKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWdsb2JlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1nbG9iZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1nbG9iZS1hZnJpY2E6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWdsb2JlLWFmcmljYSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1nbG9iZS1hbWVyaWNhczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ2xvYmUtYW1lcmljYXMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ2xvYmUtYXNpYTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ2xvYmUtYXNpYSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1nbG9iZS1ldXJvcGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWdsb2JlLWV1cm9wZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1nbG9iZS1zbm93OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1nbG9iZS1zbm93KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWdsb2JlLXN0YW5kOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1nbG9iZS1zdGFuZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1nb2ZvcmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWdvZm9yZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1nb2xmLWJhbGw6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWdvbGYtYmFsbCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1nb2xmLWNsdWI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWdvbGYtY2x1Yik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1nb29kcmVhZHM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWdvb2RyZWFkcyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1nb29kcmVhZHMtZzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ29vZHJlYWRzLWcpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ29vZ2xlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1nb29nbGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ29vZ2xlLWRyaXZlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1nb29nbGUtZHJpdmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ29vZ2xlLXBheTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ29vZ2xlLXBheSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1nb29nbGUtcGxheTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ29vZ2xlLXBsYXkpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ29vZ2xlLXBsdXM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWdvb2dsZS1wbHVzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWdvb2dsZS1wbHVzLWc6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWdvb2dsZS1wbHVzLWcpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ29vZ2xlLXBsdXMtc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1nb29nbGUtcGx1cy1zcXVhcmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ29vZ2xlLXdhbGxldDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ29vZ2xlLXdhbGxldCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1nb3B1cmFtOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1nb3B1cmFtKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWdyYWR1YXRpb24tY2FwOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ncmFkdWF0aW9uLWNhcCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ncmFtb3Bob25lOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ncmFtb3Bob25lKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWdyYXRpcGF5OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ncmF0aXBheSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ncmF2OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ncmF2KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWdyZWF0ZXItdGhhbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ3JlYXRlci10aGFuKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWdyZWF0ZXItdGhhbi1lcXVhbDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ3JlYXRlci10aGFuLWVxdWFsKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWdyaW1hY2U6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWdyaW1hY2UpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ3JpbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ3Jpbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ncmluLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ3Jpbi1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ3Jpbi1iZWFtOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ncmluLWJlYW0pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ3Jpbi1iZWFtLXN3ZWF0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ncmluLWJlYW0tc3dlYXQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ3Jpbi1oZWFydHM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWdyaW4taGVhcnRzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWdyaW4tc3F1aW50OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ncmluLXNxdWludCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ncmluLXNxdWludC10ZWFyczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ3Jpbi1zcXVpbnQtdGVhcnMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ3Jpbi1zdGFyczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ3Jpbi1zdGFycyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ncmluLXRlYXJzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ncmluLXRlYXJzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWdyaW4tdG9uZ3VlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ncmluLXRvbmd1ZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ncmluLXRvbmd1ZS1zcXVpbnQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWdyaW4tdG9uZ3VlLXNxdWludCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ncmluLXRvbmd1ZS13aW5rOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ncmluLXRvbmd1ZS13aW5rKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWdyaW4td2luazpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ3Jpbi13aW5rKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWdyaXAtaG9yaXpvbnRhbDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ3JpcC1ob3Jpem9udGFsKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWdyaXAtbGluZXM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWdyaXAtbGluZXMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ3JpcC1saW5lcy12ZXJ0aWNhbDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ3JpcC1saW5lcy12ZXJ0aWNhbCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ncmlwLXZlcnRpY2FsOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ncmlwLXZlcnRpY2FsKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWdyaXBmaXJlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ncmlwZmlyZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ncnVudDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ3J1bnQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ3VpbGRlZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ3VpbGRlZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ndWl0YXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWd1aXRhcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ndWl0YXItZWxlY3RyaWM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWd1aXRhci1lbGVjdHJpYyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ndWl0YXJzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ndWl0YXJzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWd1bHA6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWd1bHApOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taC1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWgtc3F1YXJlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWgxOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1oMSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1oMjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaDIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taDM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWgzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWg0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1oNCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1oYWNrZXItbmV3czpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaGFja2VyLW5ld3MpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taGFja2VyLW5ld3Mtc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1oYWNrZXItbmV3cy1zcXVhcmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taGFja2VycmFuazpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaGFja2VycmFuayk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1oYW1idXJnZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhhbWJ1cmdlcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1oYW1tZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhhbW1lcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1oYW1tZXItd2FyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1oYW1tZXItd2FyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhhbXNhOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1oYW1zYSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1oYW5kLWhlYXJ0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1oYW5kLWhlYXJ0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhhbmQtaG9sZGluZzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaGFuZC1ob2xkaW5nKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhhbmQtaG9sZGluZy1ib3g6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhhbmQtaG9sZGluZy1ib3gpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taGFuZC1ob2xkaW5nLWhlYXJ0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1oYW5kLWhvbGRpbmctaGVhcnQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taGFuZC1ob2xkaW5nLW1hZ2ljOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1oYW5kLWhvbGRpbmctbWFnaWMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taGFuZC1ob2xkaW5nLW1lZGljYWw6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhhbmQtaG9sZGluZy1tZWRpY2FsKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhhbmQtaG9sZGluZy1zZWVkbGluZzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaGFuZC1ob2xkaW5nLXNlZWRsaW5nKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhhbmQtaG9sZGluZy11c2Q6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhhbmQtaG9sZGluZy11c2QpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taGFuZC1ob2xkaW5nLXdhdGVyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1oYW5kLWhvbGRpbmctd2F0ZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taGFuZC1saXphcmQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhhbmQtbGl6YXJkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhhbmQtbWlkZGxlLWZpbmdlcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaGFuZC1taWRkbGUtZmluZ2VyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhhbmQtcGFwZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhhbmQtcGFwZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taGFuZC1wZWFjZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaGFuZC1wZWFjZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1oYW5kLXBvaW50LWRvd246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhhbmQtcG9pbnQtZG93bik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1oYW5kLXBvaW50LWxlZnQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhhbmQtcG9pbnQtbGVmdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1oYW5kLXBvaW50LXJpZ2h0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1oYW5kLXBvaW50LXJpZ2h0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhhbmQtcG9pbnQtdXA6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhhbmQtcG9pbnQtdXApOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taGFuZC1wb2ludGVyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1oYW5kLXBvaW50ZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taGFuZC1yZWNlaXZpbmc6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhhbmQtcmVjZWl2aW5nKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhhbmQtcm9jazpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaGFuZC1yb2NrKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhhbmQtc2Npc3NvcnM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhhbmQtc2Npc3NvcnMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taGFuZC1zcGFya2xlczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaGFuZC1zcGFya2xlcyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1oYW5kLXNwb2NrOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1oYW5kLXNwb2NrKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhhbmRzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1oYW5kcyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1oYW5kcy1oZWFydDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaGFuZHMtaGVhcnQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taGFuZHMtaGVscGluZzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaGFuZHMtaGVscGluZyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1oYW5kcy11c2Q6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhhbmRzLXVzZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1oYW5kcy13YXNoOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1oYW5kcy13YXNoKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhhbmRzaGFrZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaGFuZHNoYWtlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhhbmRzaGFrZS1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhhbmRzaGFrZS1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taGFuZHNoYWtlLWFsdC1zbGFzaDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaGFuZHNoYWtlLWFsdC1zbGFzaCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1oYW5kc2hha2Utc2xhc2g6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhhbmRzaGFrZS1zbGFzaCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1oYW51a2lhaDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaGFudWtpYWgpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taGFyZC1oYXQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhhcmQtaGF0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhhc2h0YWc6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhhc2h0YWcpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taGF0LWNoZWY6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhhdC1jaGVmKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhhdC1jb3dib3k6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhhdC1jb3dib3kpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taGF0LWNvd2JveS1zaWRlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1oYXQtY293Ym95LXNpZGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taGF0LXNhbnRhOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1oYXQtc2FudGEpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taGF0LXdpbnRlcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaGF0LXdpbnRlcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1oYXQtd2l0Y2g6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhhdC13aXRjaCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1oYXQtd2l6YXJkOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1oYXQtd2l6YXJkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhkZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaGRkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhlYWQtc2lkZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaGVhZC1zaWRlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhlYWQtc2lkZS1icmFpbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaGVhZC1zaWRlLWJyYWluKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhlYWQtc2lkZS1jb3VnaDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaGVhZC1zaWRlLWNvdWdoKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhlYWQtc2lkZS1jb3VnaC1zbGFzaDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaGVhZC1zaWRlLWNvdWdoLXNsYXNoKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhlYWQtc2lkZS1oZWFkcGhvbmVzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1oZWFkLXNpZGUtaGVhZHBob25lcyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1oZWFkLXNpZGUtbWFzazpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaGVhZC1zaWRlLW1hc2spOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taGVhZC1zaWRlLW1lZGljYWw6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhlYWQtc2lkZS1tZWRpY2FsKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhlYWQtc2lkZS12aXJ1czpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaGVhZC1zaWRlLXZpcnVzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhlYWQtdnI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhlYWQtdnIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taGVhZGluZzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaGVhZGluZyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1oZWFkcGhvbmVzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1oZWFkcGhvbmVzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhlYWRwaG9uZXMtYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1oZWFkcGhvbmVzLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1oZWFkc2V0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1oZWFkc2V0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhlYXJ0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1oZWFydCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1oZWFydC1icm9rZW46YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhlYXJ0LWJyb2tlbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1oZWFydC1jaXJjbGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhlYXJ0LWNpcmNsZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1oZWFydC1yYXRlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1oZWFydC1yYXRlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhlYXJ0LXNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaGVhcnQtc3F1YXJlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhlYXJ0YmVhdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaGVhcnRiZWF0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhlYXQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhlYXQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taGVsaWNvcHRlcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaGVsaWNvcHRlcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1oZWxtZXQtYmF0dGxlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1oZWxtZXQtYmF0dGxlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhleGFnb246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhleGFnb24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taGlnaGxpZ2h0ZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhpZ2hsaWdodGVyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhpa2luZzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaGlraW5nKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhpcHBvOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1oaXBwbyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1oaXBzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1oaXBzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhpcmUtYS1oZWxwZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhpcmUtYS1oZWxwZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taGlzdG9yeTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaGlzdG9yeSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1oaXZlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1oaXZlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhvY2tleS1tYXNrOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ob2NrZXktbWFzayk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ob2NrZXktcHVjazpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaG9ja2V5LXB1Y2spOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taG9ja2V5LXN0aWNrczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaG9ja2V5LXN0aWNrcyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ob2xseS1iZXJyeTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaG9sbHktYmVycnkpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taG9tZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaG9tZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ob21lLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaG9tZS1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taG9tZS1oZWFydDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaG9tZS1oZWFydCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ob21lLWxnOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ob21lLWxnKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhvbWUtbGctYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ob21lLWxnLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ob29kLWNsb2FrOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ob29kLWNsb2FrKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhvb2xpOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ob29saSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ob3Jpem9udGFsLXJ1bGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhvcml6b250YWwtcnVsZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ob3JuYmlsbDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaG9ybmJpbGwpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taG9yc2U6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhvcnNlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhvcnNlLWhlYWQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhvcnNlLWhlYWQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taG9yc2Utc2FkZGxlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ob3JzZS1zYWRkbGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taG9zcGl0YWw6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhvc3BpdGFsKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhvc3BpdGFsLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaG9zcGl0YWwtYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhvc3BpdGFsLXN5bWJvbDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaG9zcGl0YWwtc3ltYm9sKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhvc3BpdGFsLXVzZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhvc3BpdGFsLXVzZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taG9zcGl0YWxzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ob3NwaXRhbHMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taG90LXR1YjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaG90LXR1Yik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ob3Rkb2c6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhvdGRvZyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ob3RlbDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaG90ZWwpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taG90amFyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ob3RqYXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taG91cmdsYXNzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ob3VyZ2xhc3MpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taG91cmdsYXNzLWVuZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaG91cmdsYXNzLWVuZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ob3VyZ2xhc3MtaGFsZjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaG91cmdsYXNzLWhhbGYpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taG91cmdsYXNzLXN0YXJ0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ob3VyZ2xhc3Mtc3RhcnQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taG91c2U6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhvdXNlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhvdXNlLWRhbWFnZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaG91c2UtZGFtYWdlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhvdXNlLWRheTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaG91c2UtZGF5KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhvdXNlLWZsb29kOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ob3VzZS1mbG9vZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ob3VzZS1sZWF2ZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaG91c2UtbGVhdmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taG91c2UtbmlnaHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhvdXNlLW5pZ2h0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhvdXNlLXJldHVybjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaG91c2UtcmV0dXJuKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhvdXNlLXNpZ25hbDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaG91c2Utc2lnbmFsKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhvdXNlLXVzZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhvdXNlLXVzZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taG91eno6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhvdXp6KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhyeXZuaWE6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhyeXZuaWEpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taHRtbDU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWh0bWw1KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWh1YnNwb3Q6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWh1YnNwb3QpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taHVtaWRpdHk6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWh1bWlkaXR5KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWh1cnJpY2FuZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaHVycmljYW5lKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWktY3Vyc29yOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1pLWN1cnNvcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1pY2UtY3JlYW06YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWljZS1jcmVhbSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1pY2Utc2thdGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWljZS1za2F0ZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1pY2ljbGVzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1pY2ljbGVzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWljb25zOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1pY29ucyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1pY29ucy1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWljb25zLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1pZC1iYWRnZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaWQtYmFkZ2UpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taWQtY2FyZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaWQtY2FyZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1pZC1jYXJkLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaWQtY2FyZC1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taWRlYWw6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWlkZWFsKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWlnbG9vOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1pZ2xvbyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1pbWFnZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaW1hZ2UpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taW1hZ2UtcG9sYXJvaWQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWltYWdlLXBvbGFyb2lkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWltYWdlczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaW1hZ2VzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWltZGI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWltZGIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taW5ib3g6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWluYm94KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWluYm94LWluOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1pbmJveC1pbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1pbmJveC1vdXQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWluYm94LW91dCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1pbmRlbnQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWluZGVudCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1pbmR1c3RyeTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaW5kdXN0cnkpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taW5kdXN0cnktYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1pbmR1c3RyeS1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taW5maW5pdHk6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWluZmluaXR5KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWluZm86YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWluZm8pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taW5mby1jaXJjbGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWluZm8tY2lyY2xlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWluZm8tc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1pbmZvLXNxdWFyZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1pbmhhbGVyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1pbmhhbGVyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWlubm9zb2Z0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1pbm5vc29mdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1pbnN0YWdyYW06YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWluc3RhZ3JhbSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1pbnN0YWdyYW0tc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1pbnN0YWdyYW0tc3F1YXJlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWluc3RhbG9kOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1pbnN0YWxvZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1pbnRlZ3JhbDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaW50ZWdyYWwpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taW50ZXJjb206YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWludGVyY29tKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWludGVybmV0LWV4cGxvcmVyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1pbnRlcm5ldC1leHBsb3Jlcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1pbnRlcnNlY3Rpb246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWludGVyc2VjdGlvbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1pbnZlbnRvcnk6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWludmVudG9yeSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1pbnZpc2lvbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaW52aXNpb24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taW94aG9zdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaW94aG9zdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1pc2xhbmQtdHJvcGljYWw6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWlzbGFuZC10cm9waWNhbCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1pdGFsaWM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWl0YWxpYyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1pdGNoLWlvOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1pdGNoLWlvKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWl0dW5lczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaXR1bmVzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWl0dW5lcy1ub3RlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1pdHVuZXMtbm90ZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1qYWNrLW8tbGFudGVybjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItamFjay1vLWxhbnRlcm4pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tamF2YTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItamF2YSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1qZWRpOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1qZWRpKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWplZGktb3JkZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWplZGktb3JkZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tamVua2luczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItamVua2lucyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1qaXJhOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1qaXJhKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWpvZ2V0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1qb2dldCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1qb2ludDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItam9pbnQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tam9vbWxhOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1qb29tbGEpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tam91cm5hbC13aGlsbHM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWpvdXJuYWwtd2hpbGxzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWpveXN0aWNrOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1qb3lzdGljayk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1qczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItanMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tanMtc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1qcy1zcXVhcmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tanNmaWRkbGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWpzZmlkZGxlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWp1ZzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItanVnKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWthYWJhOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1rYWFiYSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1rYWdnbGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWthZ2dsZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1rYXpvbzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXIta2F6b28pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0ta2VybmluZzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXIta2VybmluZyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1rZXk6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWtleSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1rZXktc2tlbGV0b246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWtleS1za2VsZXRvbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1rZXliYXNlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1rZXliYXNlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWtleWJvYXJkOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1rZXlib2FyZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1rZXljZG46YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWtleWNkbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1rZXlub3RlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1rZXlub3RlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWtoYW5kYTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXIta2hhbmRhKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWtpY2tzdGFydGVyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1raWNrc3RhcnRlcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1raWNrc3RhcnRlci1rOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1raWNrc3RhcnRlci1rKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWtpZG5leXM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWtpZG5leXMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0ta2lzczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXIta2lzcyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1raXNzLWJlYW06YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWtpc3MtYmVhbSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1raXNzLXdpbmstaGVhcnQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWtpc3Mtd2luay1oZWFydCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1raXRlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1raXRlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWtpd2ktYmlyZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXIta2l3aS1iaXJkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWtuaWZlLWtpdGNoZW46YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWtuaWZlLWtpdGNoZW4pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0ta29ydnVlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1rb3J2dWUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbGFtYmRhOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1sYW1iZGEpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbGFtcDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbGFtcCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1sYW1wLWRlc2s6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWxhbXAtZGVzayk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1sYW1wLWZsb29yOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1sYW1wLWZsb29yKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWxhbmRtYXJrOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1sYW5kbWFyayk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1sYW5kbWFyay1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWxhbmRtYXJrLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1sYW5ndWFnZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbGFuZ3VhZ2UpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbGFwdG9wOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1sYXB0b3ApOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbGFwdG9wLWNvZGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWxhcHRvcC1jb2RlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWxhcHRvcC1ob3VzZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbGFwdG9wLWhvdXNlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWxhcHRvcC1tZWRpY2FsOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1sYXB0b3AtbWVkaWNhbCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1sYXJhdmVsOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1sYXJhdmVsKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWxhc3NvOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1sYXNzbyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1sYXN0Zm06YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWxhc3RmbSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1sYXN0Zm0tc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1sYXN0Zm0tc3F1YXJlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWxhdWdoOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1sYXVnaCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1sYXVnaC1iZWFtOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1sYXVnaC1iZWFtKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWxhdWdoLXNxdWludDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbGF1Z2gtc3F1aW50KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWxhdWdoLXdpbms6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWxhdWdoLXdpbmspOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbGF5ZXItZ3JvdXA6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWxheWVyLWdyb3VwKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWxheWVyLW1pbnVzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1sYXllci1taW51cyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1sYXllci1wbHVzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1sYXllci1wbHVzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWxlYWY6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWxlYWYpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbGVhZi1oZWFydDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbGVhZi1oZWFydCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1sZWFmLW1hcGxlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1sZWFmLW1hcGxlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWxlYWYtb2FrOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1sZWFmLW9hayk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1sZWFucHViOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1sZWFucHViKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWxlbW9uOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1sZW1vbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1sZXNzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1sZXNzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWxlc3MtdGhhbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbGVzcy10aGFuKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWxlc3MtdGhhbi1lcXVhbDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbGVzcy10aGFuLWVxdWFsKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWxldmVsLWRvd246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWxldmVsLWRvd24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbGV2ZWwtZG93bi1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWxldmVsLWRvd24tYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWxldmVsLXVwOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1sZXZlbC11cCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1sZXZlbC11cC1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWxldmVsLXVwLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1saWZlLXJpbmc6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWxpZmUtcmluZyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1saWdodC1jZWlsaW5nOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1saWdodC1jZWlsaW5nKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWxpZ2h0LXN3aXRjaDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbGlnaHQtc3dpdGNoKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWxpZ2h0LXN3aXRjaC1vZmY6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWxpZ2h0LXN3aXRjaC1vZmYpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbGlnaHQtc3dpdGNoLW9uOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1saWdodC1zd2l0Y2gtb24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbGlnaHRidWxiOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1saWdodGJ1bGIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbGlnaHRidWxiLWRvbGxhcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbGlnaHRidWxiLWRvbGxhcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1saWdodGJ1bGItZXhjbGFtYXRpb246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWxpZ2h0YnVsYi1leGNsYW1hdGlvbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1saWdodGJ1bGItb246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWxpZ2h0YnVsYi1vbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1saWdodGJ1bGItc2xhc2g6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWxpZ2h0YnVsYi1zbGFzaCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1saWdodHMtaG9saWRheTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbGlnaHRzLWhvbGlkYXkpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbGluZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbGluZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1saW5lLWNvbHVtbnM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWxpbmUtY29sdW1ucyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1saW5lLWhlaWdodDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbGluZS1oZWlnaHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbGluazpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbGluayk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1saW5rZWRpbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbGlua2VkaW4pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbGlua2VkaW4taW46YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWxpbmtlZGluLWluKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWxpbm9kZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbGlub2RlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWxpbnV4OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1saW51eCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1saXBzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1saXBzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWxpcmEtc2lnbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbGlyYS1zaWduKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWxpc3Q6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWxpc3QpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbGlzdC1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWxpc3QtYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWxpc3QtbXVzaWM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWxpc3QtbXVzaWMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbGlzdC1vbDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbGlzdC1vbCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1saXN0LXVsOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1saXN0LXVsKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWxvY2F0aW9uOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1sb2NhdGlvbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1sb2NhdGlvbi1hcnJvdzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbG9jYXRpb24tYXJyb3cpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbG9jYXRpb24tY2lyY2xlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1sb2NhdGlvbi1jaXJjbGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbG9jYXRpb24tc2xhc2g6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWxvY2F0aW9uLXNsYXNoKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWxvY2s6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWxvY2spOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbG9jay1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWxvY2stYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWxvY2stb3BlbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbG9jay1vcGVuKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWxvY2stb3Blbi1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWxvY2stb3Blbi1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbG9uZy1hcnJvdy1hbHQtZG93bjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbG9uZy1hcnJvdy1hbHQtZG93bik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1sb25nLWFycm93LWFsdC1sZWZ0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1sb25nLWFycm93LWFsdC1sZWZ0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWxvbmctYXJyb3ctYWx0LXJpZ2h0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1sb25nLWFycm93LWFsdC1yaWdodCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1sb25nLWFycm93LWFsdC11cDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbG9uZy1hcnJvdy1hbHQtdXApOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbG9uZy1hcnJvdy1kb3duOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1sb25nLWFycm93LWRvd24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbG9uZy1hcnJvdy1sZWZ0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1sb25nLWFycm93LWxlZnQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbG9uZy1hcnJvdy1yaWdodDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbG9uZy1hcnJvdy1yaWdodCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1sb25nLWFycm93LXVwOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1sb25nLWFycm93LXVwKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWxvdmVzZWF0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1sb3Zlc2VhdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1sb3ctdmlzaW9uOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1sb3ctdmlzaW9uKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWx1Y2hhZG9yOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1sdWNoYWRvcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1sdWdnYWdlLWNhcnQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWx1Z2dhZ2UtY2FydCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1sdW5nczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbHVuZ3MpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbHVuZ3MtdmlydXM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWx1bmdzLXZpcnVzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWx5ZnQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWx5ZnQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbWFjZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbWFjZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tYWdlbnRvOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1tYWdlbnRvKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1hZ2ljOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1tYWdpYyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tYWduZXQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1hZ25ldCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tYWlsLWJ1bGs6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1haWwtYnVsayk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tYWlsYm94OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1tYWlsYm94KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1haWxjaGltcDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbWFpbGNoaW1wKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1hbGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1hbGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbWFuZGFsb3JpYW46YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1hbmRhbG9yaWFuKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1hbmRvbGluOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1tYW5kb2xpbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tYXA6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1hcCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tYXAtbWFya2VkOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1tYXAtbWFya2VkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1hcC1tYXJrZWQtYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1tYXAtbWFya2VkLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tYXAtbWFya2VyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1tYXAtbWFya2VyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1hcC1tYXJrZXItYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1tYXAtbWFya2VyLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tYXAtbWFya2VyLWFsdC1zbGFzaDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbWFwLW1hcmtlci1hbHQtc2xhc2gpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbWFwLW1hcmtlci1jaGVjazpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbWFwLW1hcmtlci1jaGVjayk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tYXAtbWFya2VyLWVkaXQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1hcC1tYXJrZXItZWRpdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tYXAtbWFya2VyLWV4Y2xhbWF0aW9uOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1tYXAtbWFya2VyLWV4Y2xhbWF0aW9uKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1hcC1tYXJrZXItbWludXM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1hcC1tYXJrZXItbWludXMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbWFwLW1hcmtlci1wbHVzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1tYXAtbWFya2VyLXBsdXMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbWFwLW1hcmtlci1xdWVzdGlvbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbWFwLW1hcmtlci1xdWVzdGlvbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tYXAtbWFya2VyLXNsYXNoOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1tYXAtbWFya2VyLXNsYXNoKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1hcC1tYXJrZXItc21pbGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1hcC1tYXJrZXItc21pbGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbWFwLW1hcmtlci10aW1lczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbWFwLW1hcmtlci10aW1lcyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tYXAtcGluOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1tYXAtcGluKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1hcC1zaWduczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbWFwLXNpZ25zKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1hcmtkb3duOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1tYXJrZG93bik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tYXJrZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1hcmtlcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tYXJzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1tYXJzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1hcnMtZG91YmxlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1tYXJzLWRvdWJsZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tYXJzLXN0cm9rZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbWFycy1zdHJva2UpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbWFycy1zdHJva2UtaDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbWFycy1zdHJva2UtaCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tYXJzLXN0cm9rZS12OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1tYXJzLXN0cm9rZS12KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1hc2s6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1hc2spOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbWFzdG9kb246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1hc3RvZG9uKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1heGNkbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbWF4Y2RuKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1kYjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbWRiKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1lYXQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1lYXQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbWVkYWw6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1lZGFsKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1lZGFwcHM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1lZGFwcHMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbWVkaXVtOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1tZWRpdW0pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbWVkaXVtLW06YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1lZGl1bS1tKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1lZGtpdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbWVka2l0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1lZHJ0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1tZWRydCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tZWV0dXA6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1lZXR1cCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tZWdhcGhvbmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1lZ2FwaG9uZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tZWdhcG9ydDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbWVnYXBvcnQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbWVoOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1tZWgpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbWVoLWJsYW5rOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1tZWgtYmxhbmspOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbWVoLXJvbGxpbmctZXllczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbWVoLXJvbGxpbmctZXllcyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tZW1vcnk6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1lbW9yeSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tZW5kZWxleTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbWVuZGVsZXkpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbWVub3JhaDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbWVub3JhaCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tZXJjdXJ5OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1tZXJjdXJ5KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1ldGVvcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbWV0ZW9yKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1pY3JvYmxvZzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbWljcm9ibG9nKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1pY3JvY2hpcDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbWljcm9jaGlwKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1pY3JvcGhvbmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1pY3JvcGhvbmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbWljcm9waG9uZS1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1pY3JvcGhvbmUtYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1pY3JvcGhvbmUtYWx0LXNsYXNoOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1taWNyb3Bob25lLWFsdC1zbGFzaCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1taWNyb3Bob25lLXNsYXNoOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1taWNyb3Bob25lLXNsYXNoKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1pY3JvcGhvbmUtc3RhbmQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1pY3JvcGhvbmUtc3RhbmQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbWljcm9zY29wZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbWljcm9zY29wZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1taWNyb3NvZnQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1pY3Jvc29mdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1taWNyb3dhdmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1pY3Jvd2F2ZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1taW5kLXNoYXJlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1taW5kLXNoYXJlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1pbnVzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1taW51cyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1taW51cy1jaXJjbGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1pbnVzLWNpcmNsZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1taW51cy1oZXhhZ29uOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1taW51cy1oZXhhZ29uKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1pbnVzLW9jdGFnb246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1pbnVzLW9jdGFnb24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbWludXMtc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1taW51cy1zcXVhcmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbWlzdGxldG9lOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1taXN0bGV0b2UpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbWl0dGVuOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1taXR0ZW4pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbWl4OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1taXgpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbWl4Y2xvdWQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1peGNsb3VkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1peGVyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1taXhlcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1taXp1bmk6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1penVuaSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tb2JpbGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1vYmlsZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tb2JpbGUtYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1tb2JpbGUtYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1vYmlsZS1hbmRyb2lkOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1tb2JpbGUtYW5kcm9pZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tb2JpbGUtYW5kcm9pZC1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1vYmlsZS1hbmRyb2lkLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tb2R4OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1tb2R4KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1vbmVybzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbW9uZXJvKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1vbmV5LWJpbGw6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1vbmV5LWJpbGwpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbW9uZXktYmlsbC1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1vbmV5LWJpbGwtYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1vbmV5LWJpbGwtd2F2ZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbW9uZXktYmlsbC13YXZlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1vbmV5LWJpbGwtd2F2ZS1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1vbmV5LWJpbGwtd2F2ZS1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbW9uZXktY2hlY2s6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1vbmV5LWNoZWNrKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1vbmV5LWNoZWNrLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbW9uZXktY2hlY2stYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1vbmV5LWNoZWNrLWVkaXQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1vbmV5LWNoZWNrLWVkaXQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbW9uZXktY2hlY2stZWRpdC1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1vbmV5LWNoZWNrLWVkaXQtYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1vbml0b3ItaGVhcnQtcmF0ZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbW9uaXRvci1oZWFydC1yYXRlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1vbmtleTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbW9ua2V5KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1vbnVtZW50OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1tb251bWVudCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tb29uOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1tb29uKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1vb24tY2xvdWQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1vb24tY2xvdWQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbW9vbi1zdGFyczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbW9vbi1zdGFycyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tb3J0YXItcGVzdGxlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1tb3J0YXItcGVzdGxlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1vc3F1ZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbW9zcXVlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1vdG9yY3ljbGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1vdG9yY3ljbGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbW91bnRhaW46YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1vdW50YWluKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1vdW50YWluczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbW91bnRhaW5zKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1vdXNlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1tb3VzZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tb3VzZS1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1vdXNlLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tb3VzZS1wb2ludGVyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1tb3VzZS1wb2ludGVyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1wMy1wbGF5ZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1wMy1wbGF5ZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbXVnOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1tdWcpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbXVnLWhvdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbXVnLWhvdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tdWctbWFyc2htYWxsb3dzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1tdWctbWFyc2htYWxsb3dzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW11Zy10ZWE6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW11Zy10ZWEpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbXVzaWM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW11c2ljKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW11c2ljLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbXVzaWMtYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW11c2ljLWFsdC1zbGFzaDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbXVzaWMtYWx0LXNsYXNoKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW11c2ljLXNsYXNoOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1tdXNpYy1zbGFzaCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1uYXBzdGVyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1uYXBzdGVyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW5hcndoYWw6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW5hcndoYWwpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbmVvczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbmVvcyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1uZXR3b3JrLXdpcmVkOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1uZXR3b3JrLXdpcmVkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW5ldXRlcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbmV1dGVyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW5ld3NwYXBlcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbmV3c3BhcGVyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW5pbWJscjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbmltYmxyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW5vZGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW5vZGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbm9kZS1qczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbm9kZS1qcyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ub3QtZXF1YWw6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW5vdC1lcXVhbCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ub3Rlcy1tZWRpY2FsOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ub3Rlcy1tZWRpY2FsKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW5wbTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbnBtKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW5zODpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbnM4KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW51dHJpdGlvbml4OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1udXRyaXRpb25peCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1vYmplY3QtZ3JvdXA6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW9iamVjdC1ncm91cCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1vYmplY3QtdW5ncm91cDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItb2JqZWN0LXVuZ3JvdXApOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tb2N0YWdvbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItb2N0YWdvbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1vY3RvcHVzLWRlcGxveTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItb2N0b3B1cy1kZXBsb3kpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tb2Rub2tsYXNzbmlraTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItb2Rub2tsYXNzbmlraSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1vZG5va2xhc3NuaWtpLXNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItb2Rub2tsYXNzbmlraS1zcXVhcmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tb2lsLWNhbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItb2lsLWNhbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1vaWwtdGVtcDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItb2lsLXRlbXApOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tb2xkLXJlcHVibGljOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1vbGQtcmVwdWJsaWMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tb206YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW9tKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW9tZWdhOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1vbWVnYSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1vcGVuY2FydDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItb3BlbmNhcnQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tb3BlbmlkOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1vcGVuaWQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tb3BlcmE6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW9wZXJhKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW9wdGluLW1vbnN0ZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW9wdGluLW1vbnN0ZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tb3JjaWQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW9yY2lkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW9ybmFtZW50OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1vcm5hbWVudCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1vc2k6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW9zaSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1vdHRlcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItb3R0ZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tb3V0ZGVudDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItb3V0ZGVudCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1vdXRsZXQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW91dGxldCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1vdmVuOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1vdmVuKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW92ZXJsaW5lOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1vdmVybGluZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1wYWdlLWJyZWFrOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wYWdlLWJyZWFrKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBhZ2U0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wYWdlNCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1wYWdlbGluZXM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBhZ2VsaW5lcyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1wYWdlcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGFnZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGFpbnQtYnJ1c2g6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBhaW50LWJydXNoKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBhaW50LWJydXNoLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGFpbnQtYnJ1c2gtYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBhaW50LXJvbGxlcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGFpbnQtcm9sbGVyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBhbGV0dGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBhbGV0dGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGFsZmVkOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wYWxmZWQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGFsbGV0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wYWxsZXQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGFsbGV0LWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGFsbGV0LWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1wYXBlci1wbGFuZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGFwZXItcGxhbmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGFwZXJjbGlwOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wYXBlcmNsaXApOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGFyYWNodXRlLWJveDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGFyYWNodXRlLWJveCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1wYXJhZ3JhcGg6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBhcmFncmFwaCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1wYXJhZ3JhcGgtcnRsOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wYXJhZ3JhcGgtcnRsKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBhcmtpbmc6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBhcmtpbmcpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGFya2luZy1jaXJjbGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBhcmtpbmctY2lyY2xlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBhcmtpbmctY2lyY2xlLXNsYXNoOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wYXJraW5nLWNpcmNsZS1zbGFzaCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1wYXJraW5nLXNsYXNoOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wYXJraW5nLXNsYXNoKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBhc3Nwb3J0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wYXNzcG9ydCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1wYXN0YWZhcmlhbmlzbTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGFzdGFmYXJpYW5pc20pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGFzdGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBhc3RlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBhdHJlb246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBhdHJlb24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGF1c2U6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBhdXNlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBhdXNlLWNpcmNsZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGF1c2UtY2lyY2xlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBhdzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGF3KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBhdy1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBhdy1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGF3LWNsYXdzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wYXctY2xhd3MpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGF5cGFsOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wYXlwYWwpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGVhY2U6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBlYWNlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBlZ2FzdXM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBlZ2FzdXMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGVuOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wZW4pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGVuLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGVuLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1wZW4tZmFuY3k6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBlbi1mYW5jeSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1wZW4tbmliOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wZW4tbmliKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBlbi1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBlbi1zcXVhcmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGVuY2lsOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wZW5jaWwpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGVuY2lsLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGVuY2lsLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1wZW5jaWwtcGFpbnRicnVzaDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGVuY2lsLXBhaW50YnJ1c2gpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGVuY2lsLXJ1bGVyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wZW5jaWwtcnVsZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGVubmFudDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGVubmFudCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1wZW5ueS1hcmNhZGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBlbm55LWFyY2FkZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1wZW9wbGUtYXJyb3dzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wZW9wbGUtYXJyb3dzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBlb3BsZS1jYXJyeTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGVvcGxlLWNhcnJ5KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBlcHBlci1ob3Q6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBlcHBlci1ob3QpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGVyYnl0ZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGVyYnl0ZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1wZXJjZW50OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wZXJjZW50KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBlcmNlbnRhZ2U6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBlcmNlbnRhZ2UpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGVyaXNjb3BlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wZXJpc2NvcGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGVyc29uLWJvb3RoOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wZXJzb24tYm9vdGgpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGVyc29uLWNhcnJ5OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wZXJzb24tY2FycnkpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGVyc29uLWRvbGx5OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wZXJzb24tZG9sbHkpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGVyc29uLWRvbGx5LWVtcHR5OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wZXJzb24tZG9sbHktZW1wdHkpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGVyc29uLXNpZ246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBlcnNvbi1zaWduKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBoYWJyaWNhdG9yOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1waGFicmljYXRvcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1waG9lbml4LWZyYW1ld29yazpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGhvZW5peC1mcmFtZXdvcmspOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGhvZW5peC1zcXVhZHJvbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGhvZW5peC1zcXVhZHJvbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1waG9uZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGhvbmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGhvbmUtYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1waG9uZS1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGhvbmUtbGFwdG9wOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1waG9uZS1sYXB0b3ApOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGhvbmUtb2ZmaWNlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1waG9uZS1vZmZpY2UpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGhvbmUtcGx1czpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGhvbmUtcGx1cyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1waG9uZS1yb3Rhcnk6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBob25lLXJvdGFyeSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1waG9uZS1zbGFzaDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGhvbmUtc2xhc2gpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGhvbmUtc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1waG9uZS1zcXVhcmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGhvbmUtc3F1YXJlLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGhvbmUtc3F1YXJlLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1waG9uZS12b2x1bWU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBob25lLXZvbHVtZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1waG90by12aWRlbzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGhvdG8tdmlkZW8pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGhwOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1waHApOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGk6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBpKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBpYW5vOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1waWFubyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1waWFuby1rZXlib2FyZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGlhbm8ta2V5Ym9hcmQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGllOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1waWUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGllZC1waXBlcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGllZC1waXBlcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1waWVkLXBpcGVyLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGllZC1waXBlci1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGllZC1waXBlci1oYXQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBpZWQtcGlwZXItaGF0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBpZWQtcGlwZXItcHA6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBpZWQtcGlwZXItcHApOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGllZC1waXBlci1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBpZWQtcGlwZXItc3F1YXJlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBpZzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGlnKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBpZ2d5LWJhbms6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBpZ2d5LWJhbmspOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGlsbHM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBpbGxzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBpbnRlcmVzdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGludGVyZXN0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBpbnRlcmVzdC1wOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1waW50ZXJlc3QtcCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1waW50ZXJlc3Qtc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1waW50ZXJlc3Qtc3F1YXJlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBpenphOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1waXp6YSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1waXp6YS1zbGljZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGl6emEtc2xpY2UpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGxhY2Utb2Ytd29yc2hpcDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGxhY2Utb2Ytd29yc2hpcCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1wbGFuZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGxhbmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGxhbmUtYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wbGFuZS1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGxhbmUtYXJyaXZhbDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGxhbmUtYXJyaXZhbCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1wbGFuZS1kZXBhcnR1cmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBsYW5lLWRlcGFydHVyZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1wbGFuZS1zbGFzaDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGxhbmUtc2xhc2gpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGxhbmV0LW1vb246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBsYW5ldC1tb29uKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBsYW5ldC1yaW5nZWQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBsYW5ldC1yaW5nZWQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGxheTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGxheSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1wbGF5LWNpcmNsZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGxheS1jaXJjbGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGxheXN0YXRpb246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBsYXlzdGF0aW9uKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBsdWc6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBsdWcpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGx1czpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGx1cyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1wbHVzLWNpcmNsZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGx1cy1jaXJjbGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGx1cy1oZXhhZ29uOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wbHVzLWhleGFnb24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGx1cy1vY3RhZ29uOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wbHVzLW9jdGFnb24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGx1cy1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBsdXMtc3F1YXJlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBvZGNhc3Q6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBvZGNhc3QpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcG9kaXVtOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wb2RpdW0pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcG9kaXVtLXN0YXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBvZGl1bS1zdGFyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBvbGljZS1ib3g6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBvbGljZS1ib3gpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcG9sbDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcG9sbCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1wb2xsLWg6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBvbGwtaCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1wb2xsLXBlb3BsZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcG9sbC1wZW9wbGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcG9vOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wb28pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcG9vLXN0b3JtOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wb28tc3Rvcm0pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcG9vcDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcG9vcCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1wb3Bjb3JuOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wb3Bjb3JuKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBvcnRhbC1lbnRlcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcG9ydGFsLWVudGVyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBvcnRhbC1leGl0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wb3J0YWwtZXhpdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1wb3J0cmFpdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcG9ydHJhaXQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcG91bmQtc2lnbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcG91bmQtc2lnbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1wb3dlci1vZmY6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBvd2VyLW9mZik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1wcmF5OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wcmF5KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXByYXlpbmctaGFuZHM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXByYXlpbmctaGFuZHMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcHJlc2NyaXB0aW9uOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wcmVzY3JpcHRpb24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcHJlc2NyaXB0aW9uLWJvdHRsZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcHJlc2NyaXB0aW9uLWJvdHRsZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1wcmVzY3JpcHRpb24tYm90dGxlLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcHJlc2NyaXB0aW9uLWJvdHRsZS1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcHJlc2VudGF0aW9uOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wcmVzZW50YXRpb24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcHJpbnQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXByaW50KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXByaW50LXNlYXJjaDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcHJpbnQtc2VhcmNoKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXByaW50LXNsYXNoOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wcmludC1zbGFzaCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1wcm9jZWR1cmVzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wcm9jZWR1cmVzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXByb2R1Y3QtaHVudDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcHJvZHVjdC1odW50KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXByb2plY3QtZGlhZ3JhbTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcHJvamVjdC1kaWFncmFtKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXByb2plY3RvcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcHJvamVjdG9yKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXB1bXAtbWVkaWNhbDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcHVtcC1tZWRpY2FsKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXB1bXAtc29hcDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcHVtcC1zb2FwKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXB1bXBraW46YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXB1bXBraW4pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcHVzaGVkOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wdXNoZWQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcHV6emxlLXBpZWNlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wdXp6bGUtcGllY2UpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcHl0aG9uOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1weXRob24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcXE6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXFxKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXFyY29kZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcXJjb2RlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXF1ZXN0aW9uOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1xdWVzdGlvbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1xdWVzdGlvbi1jaXJjbGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXF1ZXN0aW9uLWNpcmNsZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1xdWVzdGlvbi1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXF1ZXN0aW9uLXNxdWFyZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1xdWlkZGl0Y2g6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXF1aWRkaXRjaCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1xdWluc2NhcGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXF1aW5zY2FwZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1xdW9yYTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcXVvcmEpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcXVvdGUtbGVmdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcXVvdGUtbGVmdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1xdW90ZS1yaWdodDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcXVvdGUtcmlnaHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcXVyYW46YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXF1cmFuKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXItcHJvamVjdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItci1wcm9qZWN0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJhYmJpdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcmFiYml0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJhYmJpdC1mYXN0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1yYWJiaXQtZmFzdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1yYWNxdWV0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1yYWNxdWV0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJhZGFyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1yYWRhcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1yYWRpYXRpb246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXJhZGlhdGlvbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1yYWRpYXRpb24tYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1yYWRpYXRpb24tYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJhZGlvOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1yYWRpbyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1yYWRpby1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXJhZGlvLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1yYWluYm93OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1yYWluYm93KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJhaW5kcm9wczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcmFpbmRyb3BzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJhbTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcmFtKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJhbXAtbG9hZGluZzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcmFtcC1sb2FkaW5nKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJhbmRvbTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcmFuZG9tKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJhc3BiZXJyeS1waTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcmFzcGJlcnJ5LXBpKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJhdmVscnk6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXJhdmVscnkpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcmF5Z3VuOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1yYXlndW4pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcmVhY3Q6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXJlYWN0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJlYWN0ZXVyb3BlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1yZWFjdGV1cm9wZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1yZWFkbWU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXJlYWRtZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1yZWJlbDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcmViZWwpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcmVjZWlwdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcmVjZWlwdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1yZWNvcmQtdmlueWw6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXJlY29yZC12aW55bCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1yZWN0YW5nbGUtbGFuZHNjYXBlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1yZWN0YW5nbGUtbGFuZHNjYXBlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJlY3RhbmdsZS1wb3J0cmFpdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcmVjdGFuZ2xlLXBvcnRyYWl0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJlY3RhbmdsZS13aWRlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1yZWN0YW5nbGUtd2lkZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1yZWN5Y2xlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1yZWN5Y2xlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJlZC1yaXZlcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcmVkLXJpdmVyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJlZGRpdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcmVkZGl0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJlZGRpdC1hbGllbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcmVkZGl0LWFsaWVuKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJlZGRpdC1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXJlZGRpdC1zcXVhcmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcmVkaGF0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1yZWRoYXQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcmVkbzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcmVkbyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1yZWRvLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcmVkby1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcmVmcmlnZXJhdG9yOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1yZWZyaWdlcmF0b3IpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcmVnaXN0ZXJlZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcmVnaXN0ZXJlZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1yZW1vdmUtZm9ybWF0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1yZW1vdmUtZm9ybWF0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJlbnJlbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcmVucmVuKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJlcGVhdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcmVwZWF0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJlcGVhdC0xOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1yZXBlYXQtMSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1yZXBlYXQtMS1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXJlcGVhdC0xLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1yZXBlYXQtYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1yZXBlYXQtYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJlcGx5OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1yZXBseSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1yZXBseS1hbGw6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXJlcGx5LWFsbCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1yZXBseWQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXJlcGx5ZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1yZXB1YmxpY2FuOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1yZXB1YmxpY2FuKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJlc2VhcmNoZ2F0ZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcmVzZWFyY2hnYXRlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJlc29sdmluZzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcmVzb2x2aW5nKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJlc3Ryb29tOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1yZXN0cm9vbSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1yZXR3ZWV0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1yZXR3ZWV0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJldHdlZXQtYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1yZXR3ZWV0LWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1yZXY6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXJldik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1yaWJib246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXJpYmJvbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1yaW5nOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1yaW5nKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJpbmdzLXdlZGRpbmc6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXJpbmdzLXdlZGRpbmcpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcm9hZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcm9hZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1yb2JvdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcm9ib3QpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcm9ja2V0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1yb2NrZXQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcm9ja2V0LWxhdW5jaDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcm9ja2V0LWxhdW5jaCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1yb2NrZXRjaGF0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1yb2NrZXRjaGF0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJvY2tybXM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXJvY2tybXMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcm91dGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXJvdXRlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJvdXRlLWhpZ2h3YXk6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXJvdXRlLWhpZ2h3YXkpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcm91dGUtaW50ZXJzdGF0ZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcm91dGUtaW50ZXJzdGF0ZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1yb3V0ZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXJvdXRlcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1yc3M6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXJzcyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1yc3Mtc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1yc3Mtc3F1YXJlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJ1YmxlLXNpZ246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXJ1YmxlLXNpZ24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcnVsZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXJ1bGVyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJ1bGVyLWNvbWJpbmVkOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ydWxlci1jb21iaW5lZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ydWxlci1ob3Jpem9udGFsOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ydWxlci1ob3Jpem9udGFsKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJ1bGVyLXRyaWFuZ2xlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ydWxlci10cmlhbmdsZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ydWxlci12ZXJ0aWNhbDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcnVsZXItdmVydGljYWwpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcnVubmluZzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcnVubmluZyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ydXBlZS1zaWduOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ydXBlZS1zaWduKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJ1c3Q6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXJ1c3QpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcnY6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXJ2KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNhY2s6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNhY2spOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2Fjay1kb2xsYXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNhY2stZG9sbGFyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNhZC1jcnk6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNhZC1jcnkpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2FkLXRlYXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNhZC10ZWFyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNhZmFyaTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2FmYXJpKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNhbGFkOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zYWxhZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zYWxlc2ZvcmNlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zYWxlc2ZvcmNlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNhbmR3aWNoOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zYW5kd2ljaCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zYXNzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zYXNzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNhdGVsbGl0ZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2F0ZWxsaXRlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNhdGVsbGl0ZS1kaXNoOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zYXRlbGxpdGUtZGlzaCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zYXVzYWdlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zYXVzYWdlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNhdmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNhdmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2F4LWhvdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2F4LWhvdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zYXhvcGhvbmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNheG9waG9uZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zY2FscGVsOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zY2FscGVsKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNjYWxwZWwtcGF0aDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2NhbHBlbC1wYXRoKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNjYW5uZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNjYW5uZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2Nhbm5lci1pbWFnZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2Nhbm5lci1pbWFnZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zY2FubmVyLWtleWJvYXJkOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zY2FubmVyLWtleWJvYXJkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNjYW5uZXItdG91Y2hzY3JlZW46YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNjYW5uZXItdG91Y2hzY3JlZW4pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2NhcmVjcm93OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zY2FyZWNyb3cpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2NhcmY6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNjYXJmKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNjaGxpeDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2NobGl4KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNjaG9vbDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2Nob29sKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNjcmV3ZHJpdmVyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zY3Jld2RyaXZlcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zY3JpYmQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNjcmliZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zY3JvbGw6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNjcm9sbCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zY3JvbGwtb2xkOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zY3JvbGwtb2xkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNjcnViYmVyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zY3J1YmJlcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zY3l0aGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNjeXRoZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zZC1jYXJkOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zZC1jYXJkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNlYXJjaDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2VhcmNoKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNlYXJjaC1kb2xsYXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNlYXJjaC1kb2xsYXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2VhcmNoLWxvY2F0aW9uOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zZWFyY2gtbG9jYXRpb24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2VhcmNoLW1pbnVzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zZWFyY2gtbWludXMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2VhcmNoLXBsdXM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNlYXJjaC1wbHVzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNlYXJjaGVuZ2luOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zZWFyY2hlbmdpbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zZWVkbGluZzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2VlZGxpbmcpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2VsbGNhc3Q6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNlbGxjYXN0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNlbGxzeTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2VsbHN5KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNlbmQtYmFjazpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2VuZC1iYWNrKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNlbmQtYmFja3dhcmQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNlbmQtYmFja3dhcmQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2Vuc29yOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zZW5zb3IpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2Vuc29yLWFsZXJ0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zZW5zb3ItYWxlcnQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2Vuc29yLWZpcmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNlbnNvci1maXJlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNlbnNvci1vbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2Vuc29yLW9uKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNlbnNvci1zbW9rZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2Vuc29yLXNtb2tlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNlcnZlcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2VydmVyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNlcnZpY2VzdGFjazpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2VydmljZXN0YWNrKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNoYXBlczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2hhcGVzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNoYXJlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zaGFyZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zaGFyZS1hbGw6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNoYXJlLWFsbCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zaGFyZS1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNoYXJlLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zaGFyZS1hbHQtc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zaGFyZS1hbHQtc3F1YXJlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNoYXJlLXNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2hhcmUtc3F1YXJlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNoZWVwOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zaGVlcCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zaGVrZWwtc2lnbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2hla2VsLXNpZ24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2hpZWxkOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zaGllbGQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2hpZWxkLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2hpZWxkLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zaGllbGQtY2hlY2s6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNoaWVsZC1jaGVjayk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zaGllbGQtY3Jvc3M6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNoaWVsZC1jcm9zcyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zaGllbGQtdmlydXM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNoaWVsZC12aXJ1cyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zaGlwOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zaGlwKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNoaXBwaW5nLWZhc3Q6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNoaXBwaW5nLWZhc3QpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2hpcHBpbmctdGltZWQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNoaXBwaW5nLXRpbWVkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNoaXJ0c2luYnVsazpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2hpcnRzaW5idWxrKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNoaXNoLWtlYmFiOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zaGlzaC1rZWJhYik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zaG9lLXByaW50czpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2hvZS1wcmludHMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2hvcGlmeTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2hvcGlmeSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zaG9wcGluZy1iYWc6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNob3BwaW5nLWJhZyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zaG9wcGluZy1iYXNrZXQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNob3BwaW5nLWJhc2tldCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zaG9wcGluZy1jYXJ0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zaG9wcGluZy1jYXJ0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNob3B3YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zaG9wd2FyZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zaG92ZWw6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNob3ZlbCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zaG92ZWwtc25vdzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2hvdmVsLXNub3cpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2hvd2VyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zaG93ZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2hyZWRkZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNocmVkZGVyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNodXR0bGUtdmFuOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zaHV0dGxlLXZhbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zaHV0dGxlY29jazpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2h1dHRsZWNvY2spOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2lja2xlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zaWNrbGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2lnbWE6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNpZ21hKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNpZ246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNpZ24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2lnbi1pbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2lnbi1pbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zaWduLWluLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2lnbi1pbi1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2lnbi1sYW5ndWFnZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2lnbi1sYW5ndWFnZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zaWduLW91dDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2lnbi1vdXQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2lnbi1vdXQtYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zaWduLW91dC1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2lnbmFsOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zaWduYWwpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2lnbmFsLTE6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNpZ25hbC0xKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNpZ25hbC0yOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zaWduYWwtMik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zaWduYWwtMzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2lnbmFsLTMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2lnbmFsLTQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNpZ25hbC00KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNpZ25hbC1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNpZ25hbC1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2lnbmFsLWFsdC0xOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zaWduYWwtYWx0LTEpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2lnbmFsLWFsdC0yOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zaWduYWwtYWx0LTIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2lnbmFsLWFsdC0zOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zaWduYWwtYWx0LTMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2lnbmFsLWFsdC1zbGFzaDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2lnbmFsLWFsdC1zbGFzaCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zaWduYWwtc2xhc2g6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNpZ25hbC1zbGFzaCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zaWduYWwtc3RyZWFtOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zaWduYWwtc3RyZWFtKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNpZ25hdHVyZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2lnbmF0dXJlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNpbS1jYXJkOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zaW0tY2FyZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zaW1wbHlidWlsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2ltcGx5YnVpbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2luazpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2luayk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zaXJlbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2lyZW4pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2lyZW4tb246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNpcmVuLW9uKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNpc3RyaXg6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNpc3RyaXgpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2l0ZW1hcDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2l0ZW1hcCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zaXRoOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zaXRoKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNrYXRpbmc6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNrYXRpbmcpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2tlbGV0b246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNrZWxldG9uKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNrZXRjaDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2tldGNoKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNraS1qdW1wOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1za2ktanVtcCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1za2ktbGlmdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2tpLWxpZnQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2tpaW5nOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1za2lpbmcpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2tpaW5nLW5vcmRpYzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2tpaW5nLW5vcmRpYyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1za3VsbDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2t1bGwpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2t1bGwtY293OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1za3VsbC1jb3cpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2t1bGwtY3Jvc3Nib25lczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2t1bGwtY3Jvc3Nib25lcyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1za3lhdGxhczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2t5YXRsYXMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2t5cGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNreXBlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNsYWNrOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zbGFjayk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zbGFjay1oYXNoOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zbGFjay1oYXNoKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNsYXNoOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zbGFzaCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zbGVkZGluZzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2xlZGRpbmcpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2xlaWdoOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zbGVpZ2gpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2xpZGVycy1oOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zbGlkZXJzLWgpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2xpZGVycy1oLXNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2xpZGVycy1oLXNxdWFyZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zbGlkZXJzLXY6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNsaWRlcnMtdik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zbGlkZXJzLXYtc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zbGlkZXJzLXYtc3F1YXJlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNsaWRlc2hhcmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNsaWRlc2hhcmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc21pbGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNtaWxlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNtaWxlLWJlYW06YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNtaWxlLWJlYW0pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc21pbGUtcGx1czpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc21pbGUtcGx1cyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zbWlsZS13aW5rOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zbWlsZS13aW5rKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNtb2c6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNtb2cpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc21va2U6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNtb2tlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNtb2tpbmc6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNtb2tpbmcpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc21va2luZy1iYW46YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNtb2tpbmctYmFuKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNtczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc21zKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNuYWtlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zbmFrZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zbmFwY2hhdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc25hcGNoYXQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc25hcGNoYXQtZ2hvc3Q6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNuYXBjaGF0LWdob3N0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNuYXBjaGF0LXNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc25hcGNoYXQtc3F1YXJlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNub296ZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc25vb3plKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNub3ctYmxvd2luZzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc25vdy1ibG93aW5nKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNub3dib2FyZGluZzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc25vd2JvYXJkaW5nKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNub3dmbGFrZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc25vd2ZsYWtlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNub3dmbGFrZXM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNub3dmbGFrZXMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc25vd21hbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc25vd21hbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zbm93bW9iaWxlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zbm93bW9iaWxlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNub3dwbG93OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zbm93cGxvdyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zb2FwOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zb2FwKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNvY2tzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zb2Nrcyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zb2xhci1wYW5lbDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc29sYXItcGFuZWwpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc29sYXItc3lzdGVtOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zb2xhci1zeXN0ZW0pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc29ydDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc29ydCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zb3J0LWFscGhhLWRvd246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNvcnQtYWxwaGEtZG93bik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zb3J0LWFscGhhLWRvd24tYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zb3J0LWFscGhhLWRvd24tYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNvcnQtYWxwaGEtdXA6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNvcnQtYWxwaGEtdXApOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc29ydC1hbHBoYS11cC1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNvcnQtYWxwaGEtdXAtYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNvcnQtYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zb3J0LWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zb3J0LWFtb3VudC1kb3duOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zb3J0LWFtb3VudC1kb3duKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNvcnQtYW1vdW50LWRvd24tYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zb3J0LWFtb3VudC1kb3duLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zb3J0LWFtb3VudC11cDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc29ydC1hbW91bnQtdXApOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc29ydC1hbW91bnQtdXAtYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zb3J0LWFtb3VudC11cC1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc29ydC1jaXJjbGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNvcnQtY2lyY2xlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNvcnQtY2lyY2xlLWRvd246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNvcnQtY2lyY2xlLWRvd24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc29ydC1jaXJjbGUtdXA6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNvcnQtY2lyY2xlLXVwKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNvcnQtZG93bjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc29ydC1kb3duKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNvcnQtbnVtZXJpYy1kb3duOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zb3J0LW51bWVyaWMtZG93bik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zb3J0LW51bWVyaWMtZG93bi1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNvcnQtbnVtZXJpYy1kb3duLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zb3J0LW51bWVyaWMtdXA6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNvcnQtbnVtZXJpYy11cCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zb3J0LW51bWVyaWMtdXAtYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zb3J0LW51bWVyaWMtdXAtYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNvcnQtc2hhcGVzLWRvd246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNvcnQtc2hhcGVzLWRvd24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc29ydC1zaGFwZXMtZG93bi1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNvcnQtc2hhcGVzLWRvd24tYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNvcnQtc2hhcGVzLXVwOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zb3J0LXNoYXBlcy11cCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zb3J0LXNoYXBlcy11cC1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNvcnQtc2hhcGVzLXVwLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zb3J0LXNpemUtZG93bjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc29ydC1zaXplLWRvd24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc29ydC1zaXplLWRvd24tYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zb3J0LXNpemUtZG93bi1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc29ydC1zaXplLXVwOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zb3J0LXNpemUtdXApOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc29ydC1zaXplLXVwLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc29ydC1zaXplLXVwLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zb3J0LXVwOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zb3J0LXVwKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNvdW5kY2xvdWQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNvdW5kY2xvdWQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc291cDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc291cCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zb3VyY2V0cmVlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zb3VyY2V0cmVlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNwYTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc3BhKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNwYWNlLXNodXR0bGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNwYWNlLXNodXR0bGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3BhY2Utc3RhdGlvbi1tb29uOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zcGFjZS1zdGF0aW9uLW1vb24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3BhY2Utc3RhdGlvbi1tb29uLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc3BhY2Utc3RhdGlvbi1tb29uLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zcGFkZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc3BhZGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3BhcmtsZXM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNwYXJrbGVzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNwZWFrYXA6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNwZWFrYXApOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3BlYWtlcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc3BlYWtlcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zcGVha2VyLWRlY2s6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNwZWFrZXItZGVjayk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zcGVha2VyczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc3BlYWtlcnMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3BlbGwtY2hlY2s6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNwZWxsLWNoZWNrKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNwaWRlcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc3BpZGVyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNwaWRlci1ibGFjay13aWRvdzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc3BpZGVyLWJsYWNrLXdpZG93KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNwaWRlci13ZWI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNwaWRlci13ZWIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3Bpbm5lcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc3Bpbm5lcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zcGlubmVyLXRoaXJkOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zcGlubmVyLXRoaXJkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNwbG90Y2g6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNwbG90Y2gpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3BvdGlmeTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc3BvdGlmeSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zcHJheS1jYW46YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNwcmF5LWNhbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zcHJpbmtsZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNwcmlua2xlcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNxdWFyZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zcXVhcmUtZnVsbDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc3F1YXJlLWZ1bGwpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3F1YXJlLXJvb3Q6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNxdWFyZS1yb290KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNxdWFyZS1yb290LWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc3F1YXJlLXJvb3QtYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNxdWFyZXNwYWNlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zcXVhcmVzcGFjZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zcXVpcnJlbDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc3F1aXJyZWwpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3RhY2stZXhjaGFuZ2U6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXN0YWNrLWV4Y2hhbmdlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN0YWNrLW92ZXJmbG93OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zdGFjay1vdmVyZmxvdyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zdGFja3BhdGg6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXN0YWNrcGF0aCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zdGFmZjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc3RhZmYpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3RhbXA6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXN0YW1wKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN0YXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXN0YXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3Rhci1hbmQtY3Jlc2NlbnQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXN0YXItYW5kLWNyZXNjZW50KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN0YXItY2hyaXN0bWFzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zdGFyLWNocmlzdG1hcyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zdGFyLWV4Y2xhbWF0aW9uOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zdGFyLWV4Y2xhbWF0aW9uKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN0YXItaGFsZjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc3Rhci1oYWxmKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN0YXItaGFsZi1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXN0YXItaGFsZi1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3Rhci1vZi1kYXZpZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc3Rhci1vZi1kYXZpZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zdGFyLW9mLWxpZmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXN0YXItb2YtbGlmZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zdGFyLXNob290aW5nOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zdGFyLXNob290aW5nKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN0YXJmaWdodGVyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zdGFyZmlnaHRlcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zdGFyZmlnaHRlci1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXN0YXJmaWdodGVyLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zdGFyczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc3RhcnMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3RhcnNoaXA6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXN0YXJzaGlwKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN0YXJzaGlwLWZyZWlnaHRlcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc3RhcnNoaXAtZnJlaWdodGVyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN0YXlsaW5rZWQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXN0YXlsaW5rZWQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3RlYWs6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXN0ZWFrKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN0ZWFtOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zdGVhbSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zdGVhbS1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXN0ZWFtLXNxdWFyZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zdGVhbS1zeW1ib2w6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXN0ZWFtLXN5bWJvbCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zdGVlcmluZy13aGVlbDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc3RlZXJpbmctd2hlZWwpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3RlcC1iYWNrd2FyZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc3RlcC1iYWNrd2FyZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zdGVwLWZvcndhcmQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXN0ZXAtZm9yd2FyZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zdGV0aG9zY29wZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc3RldGhvc2NvcGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3RpY2tlci1tdWxlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zdGlja2VyLW11bGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3RpY2t5LW5vdGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXN0aWNreS1ub3RlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN0b2NraW5nOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zdG9ja2luZyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zdG9tYWNoOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zdG9tYWNoKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN0b3A6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXN0b3ApOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3RvcC1jaXJjbGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXN0b3AtY2lyY2xlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN0b3B3YXRjaDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc3RvcHdhdGNoKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN0b3B3YXRjaC0yMDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc3RvcHdhdGNoLTIwKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN0b3JlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zdG9yZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zdG9yZS1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXN0b3JlLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zdG9yZS1hbHQtc2xhc2g6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXN0b3JlLWFsdC1zbGFzaCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zdG9yZS1zbGFzaDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc3RvcmUtc2xhc2gpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3RyYXZhOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zdHJhdmEpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3RyZWFtOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zdHJlYW0pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3RyZWV0LXZpZXc6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXN0cmVldC12aWV3KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN0cmV0Y2hlcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc3RyZXRjaGVyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN0cmlrZXRocm91Z2g6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXN0cmlrZXRocm91Z2gpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3RyaXBlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zdHJpcGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3RyaXBlLXM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXN0cmlwZS1zKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN0cm9vcHdhZmVsOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zdHJvb3B3YWZlbCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zdHVkaW92aW5hcmk6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXN0dWRpb3ZpbmFyaSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zdHVtYmxldXBvbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc3R1bWJsZXVwb24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3R1bWJsZXVwb24tY2lyY2xlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zdHVtYmxldXBvbi1jaXJjbGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3Vic2NyaXB0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zdWJzY3JpcHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3Vid2F5OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zdWJ3YXkpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3VpdGNhc2U6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXN1aXRjYXNlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN1aXRjYXNlLXJvbGxpbmc6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXN1aXRjYXNlLXJvbGxpbmcpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3VuOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zdW4pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3VuLWNsb3VkOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zdW4tY2xvdWQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3VuLWR1c3Q6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXN1bi1kdXN0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN1bi1oYXplOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zdW4taGF6ZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zdW5nbGFzc2VzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zdW5nbGFzc2VzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN1bnJpc2U6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXN1bnJpc2UpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3Vuc2V0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zdW5zZXQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3VwZXJwb3dlcnM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXN1cGVycG93ZXJzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN1cGVyc2NyaXB0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zdXBlcnNjcmlwdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zdXBwbGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXN1cHBsZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zdXJwcmlzZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc3VycHJpc2UpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3VzZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc3VzZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zd2F0Y2hib29rOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zd2F0Y2hib29rKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN3aWZ0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zd2lmdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zd2ltbWVyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zd2ltbWVyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN3aW1taW5nLXBvb2w6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXN3aW1taW5nLXBvb2wpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3dvcmQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXN3b3JkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN3b3JkLWxhc2VyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zd29yZC1sYXNlcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zd29yZC1sYXNlci1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXN3b3JkLWxhc2VyLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zd29yZHM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXN3b3Jkcyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zd29yZHMtbGFzZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXN3b3Jkcy1sYXNlcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zeW1mb255OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zeW1mb255KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN5bmFnb2d1ZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc3luYWdvZ3VlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN5bmM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXN5bmMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3luYy1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXN5bmMtYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN5cmluZ2U6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXN5cmluZ2UpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdGFibGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRhYmxlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRhYmxlLXRlbm5pczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdGFibGUtdGVubmlzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRhYmxldDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdGFibGV0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRhYmxldC1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRhYmxldC1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdGFibGV0LWFuZHJvaWQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRhYmxldC1hbmRyb2lkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRhYmxldC1hbmRyb2lkLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdGFibGV0LWFuZHJvaWQtYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRhYmxldC1ydWdnZWQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRhYmxldC1ydWdnZWQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdGFibGV0czpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdGFibGV0cyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10YWNob21ldGVyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10YWNob21ldGVyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRhY2hvbWV0ZXItYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10YWNob21ldGVyLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10YWNob21ldGVyLWFsdC1hdmVyYWdlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10YWNob21ldGVyLWFsdC1hdmVyYWdlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRhY2hvbWV0ZXItYWx0LWZhc3Q6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRhY2hvbWV0ZXItYWx0LWZhc3QpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdGFjaG9tZXRlci1hbHQtZmFzdGVzdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdGFjaG9tZXRlci1hbHQtZmFzdGVzdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10YWNob21ldGVyLWFsdC1zbG93OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10YWNob21ldGVyLWFsdC1zbG93KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRhY2hvbWV0ZXItYWx0LXNsb3dlc3Q6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRhY2hvbWV0ZXItYWx0LXNsb3dlc3QpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdGFjaG9tZXRlci1hdmVyYWdlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10YWNob21ldGVyLWF2ZXJhZ2UpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdGFjaG9tZXRlci1mYXN0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10YWNob21ldGVyLWZhc3QpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdGFjaG9tZXRlci1mYXN0ZXN0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10YWNob21ldGVyLWZhc3Rlc3QpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdGFjaG9tZXRlci1zbG93OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10YWNob21ldGVyLXNsb3cpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdGFjaG9tZXRlci1zbG93ZXN0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10YWNob21ldGVyLXNsb3dlc3QpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdGFjbzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdGFjbyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10YWc6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRhZyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10YWdzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10YWdzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRhbGx5OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10YWxseSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10YW5ha2g6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRhbmFraCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10YXBlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10YXBlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRhc2tzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10YXNrcyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10YXNrcy1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRhc2tzLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10YXhpOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10YXhpKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRlYW1zcGVhazpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdGVhbXNwZWFrKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRlZXRoOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10ZWV0aCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10ZWV0aC1vcGVuOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10ZWV0aC1vcGVuKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRlbGVncmFtOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10ZWxlZ3JhbSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10ZWxlZ3JhbS1wbGFuZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdGVsZWdyYW0tcGxhbmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdGVsZXNjb3BlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10ZWxlc2NvcGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdGVtcGVyYXR1cmUtZG93bjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdGVtcGVyYXR1cmUtZG93bik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10ZW1wZXJhdHVyZS1mcmlnaWQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRlbXBlcmF0dXJlLWZyaWdpZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10ZW1wZXJhdHVyZS1oaWdoOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10ZW1wZXJhdHVyZS1oaWdoKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRlbXBlcmF0dXJlLWhvdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdGVtcGVyYXR1cmUtaG90KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRlbXBlcmF0dXJlLWxvdzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdGVtcGVyYXR1cmUtbG93KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRlbXBlcmF0dXJlLXVwOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10ZW1wZXJhdHVyZS11cCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10ZW5jZW50LXdlaWJvOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10ZW5jZW50LXdlaWJvKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRlbmdlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10ZW5nZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10ZW5uaXMtYmFsbDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdGVubmlzLWJhbGwpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdGVybWluYWw6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRlcm1pbmFsKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRleHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRleHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdGV4dC1oZWlnaHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRleHQtaGVpZ2h0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRleHQtc2l6ZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdGV4dC1zaXplKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRleHQtd2lkdGg6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRleHQtd2lkdGgpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdGg6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRoKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRoLWxhcmdlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10aC1sYXJnZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10aC1saXN0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10aC1saXN0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRoZS1yZWQteWV0aTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdGhlLXJlZC15ZXRpKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRoZWF0ZXItbWFza3M6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRoZWF0ZXItbWFza3MpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdGhlbWVjbzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdGhlbWVjbyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10aGVtZWlzbGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRoZW1laXNsZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10aGVybW9tZXRlcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdGhlcm1vbWV0ZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdGhlcm1vbWV0ZXItZW1wdHk6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRoZXJtb21ldGVyLWVtcHR5KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRoZXJtb21ldGVyLWZ1bGw6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRoZXJtb21ldGVyLWZ1bGwpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdGhlcm1vbWV0ZXItaGFsZjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdGhlcm1vbWV0ZXItaGFsZik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10aGVybW9tZXRlci1xdWFydGVyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10aGVybW9tZXRlci1xdWFydGVyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRoZXJtb21ldGVyLXRocmVlLXF1YXJ0ZXJzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10aGVybW9tZXRlci10aHJlZS1xdWFydGVycyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10aGV0YTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdGhldGEpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdGhpbmstcGVha3M6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRoaW5rLXBlYWtzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRodW1icy1kb3duOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10aHVtYnMtZG93bik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10aHVtYnMtdXA6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRodW1icy11cCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10aHVtYnRhY2s6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRodW1idGFjayk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10aHVuZGVyc3Rvcm06YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRodW5kZXJzdG9ybSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10aHVuZGVyc3Rvcm0tbW9vbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdGh1bmRlcnN0b3JtLW1vb24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdGh1bmRlcnN0b3JtLXN1bjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdGh1bmRlcnN0b3JtLXN1bik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10aWNrZXQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRpY2tldCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10aWNrZXQtYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10aWNrZXQtYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRpa3RvazpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdGlrdG9rKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRpbGRlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10aWxkZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10aW1lczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdGltZXMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdGltZXMtY2lyY2xlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10aW1lcy1jaXJjbGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdGltZXMtaGV4YWdvbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdGltZXMtaGV4YWdvbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10aW1lcy1vY3RhZ29uOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10aW1lcy1vY3RhZ29uKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRpbWVzLXNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdGltZXMtc3F1YXJlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRpbnQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRpbnQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdGludC1zbGFzaDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdGludC1zbGFzaCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10aXJlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10aXJlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRpcmUtZmxhdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdGlyZS1mbGF0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRpcmUtcHJlc3N1cmUtd2FybmluZzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdGlyZS1wcmVzc3VyZS13YXJuaW5nKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRpcmUtcnVnZ2VkOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10aXJlLXJ1Z2dlZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10aXJlZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdGlyZWQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdG9nZ2xlLW9mZjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdG9nZ2xlLW9mZik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10b2dnbGUtb246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRvZ2dsZS1vbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10b2lsZXQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRvaWxldCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10b2lsZXQtcGFwZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRvaWxldC1wYXBlcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10b2lsZXQtcGFwZXItYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10b2lsZXQtcGFwZXItYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRvaWxldC1wYXBlci1zbGFzaDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdG9pbGV0LXBhcGVyLXNsYXNoKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRvbWJzdG9uZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdG9tYnN0b25lKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRvbWJzdG9uZS1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRvbWJzdG9uZS1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdG9vbGJveDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdG9vbGJveCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10b29sczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdG9vbHMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdG9vdGg6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRvb3RoKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRvb3RoYnJ1c2g6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRvb3RoYnJ1c2gpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdG9yYWg6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRvcmFoKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRvcmlpLWdhdGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRvcmlpLWdhdGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdG9ybmFkbzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdG9ybmFkbyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10cmFjdG9yOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10cmFjdG9yKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRyYWRlLWZlZGVyYXRpb246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRyYWRlLWZlZGVyYXRpb24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdHJhZGVtYXJrOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10cmFkZW1hcmspOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdHJhZmZpYy1jb25lOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10cmFmZmljLWNvbmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdHJhZmZpYy1saWdodDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdHJhZmZpYy1saWdodCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10cmFmZmljLWxpZ2h0LWdvOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10cmFmZmljLWxpZ2h0LWdvKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRyYWZmaWMtbGlnaHQtc2xvdzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdHJhZmZpYy1saWdodC1zbG93KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRyYWZmaWMtbGlnaHQtc3RvcDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdHJhZmZpYy1saWdodC1zdG9wKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRyYWlsZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRyYWlsZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdHJhaW46YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRyYWluKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRyYW06YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRyYW0pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdHJhbnNnZW5kZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRyYW5zZ2VuZGVyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRyYW5zZ2VuZGVyLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdHJhbnNnZW5kZXItYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRyYW5zcG9ydGVyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10cmFuc3BvcnRlcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10cmFuc3BvcnRlci0xOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10cmFuc3BvcnRlci0xKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRyYW5zcG9ydGVyLTI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRyYW5zcG9ydGVyLTIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdHJhbnNwb3J0ZXItMzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdHJhbnNwb3J0ZXItMyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10cmFuc3BvcnRlci1lbXB0eTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdHJhbnNwb3J0ZXItZW1wdHkpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdHJhc2g6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRyYXNoKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRyYXNoLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdHJhc2gtYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRyYXNoLXJlc3RvcmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRyYXNoLXJlc3RvcmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdHJhc2gtcmVzdG9yZS1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRyYXNoLXJlc3RvcmUtYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRyYXNoLXVuZG86YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRyYXNoLXVuZG8pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdHJhc2gtdW5kby1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRyYXNoLXVuZG8tYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRyZWFzdXJlLWNoZXN0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10cmVhc3VyZS1jaGVzdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10cmVlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10cmVlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRyZWUtYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10cmVlLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10cmVlLWNocmlzdG1hczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdHJlZS1jaHJpc3RtYXMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdHJlZS1kZWNvcmF0ZWQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRyZWUtZGVjb3JhdGVkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRyZWUtbGFyZ2U6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRyZWUtbGFyZ2UpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdHJlZS1wYWxtOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10cmVlLXBhbG0pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdHJlZXM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRyZWVzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRyZWxsbzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdHJlbGxvKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRyaWFuZ2xlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10cmlhbmdsZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10cmlhbmdsZS1tdXNpYzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdHJpYW5nbGUtbXVzaWMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdHJvcGh5OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10cm9waHkpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdHJvcGh5LWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdHJvcGh5LWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10cnVjazpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdHJ1Y2spOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdHJ1Y2stY29udGFpbmVyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10cnVjay1jb250YWluZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdHJ1Y2stY291Y2g6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRydWNrLWNvdWNoKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRydWNrLWxvYWRpbmc6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRydWNrLWxvYWRpbmcpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdHJ1Y2stbW9uc3RlcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdHJ1Y2stbW9uc3Rlcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10cnVjay1tb3Zpbmc6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRydWNrLW1vdmluZyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10cnVjay1waWNrdXA6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRydWNrLXBpY2t1cCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10cnVjay1wbG93OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10cnVjay1wbG93KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRydWNrLXJhbXA6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRydWNrLXJhbXApOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdHJ1bXBldDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdHJ1bXBldCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10c2hpcnQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRzaGlydCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10dHk6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXR0eSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10dW1ibHI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXR1bWJscik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10dW1ibHItc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10dW1ibHItc3F1YXJlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXR1cmtleTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdHVya2V5KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXR1cm50YWJsZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdHVybnRhYmxlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXR1cnRsZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdHVydGxlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXR2OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10dik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10di1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXR2LWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10di1tdXNpYzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdHYtbXVzaWMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdHYtcmV0cm86YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXR2LXJldHJvKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXR3aXRjaDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdHdpdGNoKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXR3aXR0ZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXR3aXR0ZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdHdpdHRlci1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXR3aXR0ZXItc3F1YXJlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXR5cGV3cml0ZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXR5cGV3cml0ZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdHlwbzM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXR5cG8zKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXViZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXViZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdWJ1bnR1OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci11YnVudHUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdWZvOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci11Zm8pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdWZvLWJlYW06YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXVmby1iZWFtKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXVpa2l0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci11aWtpdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS11bWJyYWNvOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci11bWJyYWNvKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXVtYnJlbGxhOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci11bWJyZWxsYSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS11bWJyZWxsYS1iZWFjaDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdW1icmVsbGEtYmVhY2gpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdW5jaGFydGVkOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci11bmNoYXJ0ZWQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdW5kZXJsaW5lOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci11bmRlcmxpbmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdW5kbzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdW5kbyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS11bmRvLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdW5kby1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdW5pY29ybjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdW5pY29ybik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS11bmlvbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdW5pb24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdW5pcmVnaXN0cnk6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXVuaXJlZ2lzdHJ5KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXVuaXR5OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci11bml0eSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS11bml2ZXJzYWwtYWNjZXNzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci11bml2ZXJzYWwtYWNjZXNzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXVuaXZlcnNpdHk6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXVuaXZlcnNpdHkpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdW5saW5rOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci11bmxpbmspOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdW5sb2NrOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci11bmxvY2spOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdW5sb2NrLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdW5sb2NrLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS11bnNwbGFzaDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdW5zcGxhc2gpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdW50YXBwZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdW50YXBwZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS11cGxvYWQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXVwbG9hZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS11cHM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXVwcyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS11c2I6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXVzYik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS11c2ItZHJpdmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXVzYi1kcml2ZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS11c2QtY2lyY2xlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci11c2QtY2lyY2xlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXVzZC1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXVzZC1zcXVhcmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdXNlcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdXNlcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS11c2VyLWFsaWVuOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci11c2VyLWFsaWVuKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXVzZXItYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci11c2VyLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS11c2VyLWFsdC1zbGFzaDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdXNlci1hbHQtc2xhc2gpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdXNlci1hc3Ryb25hdXQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXVzZXItYXN0cm9uYXV0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXVzZXItY2hhcnQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXVzZXItY2hhcnQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdXNlci1jaGVjazpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdXNlci1jaGVjayk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS11c2VyLWNpcmNsZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdXNlci1jaXJjbGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdXNlci1jbG9jazpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdXNlci1jbG9jayk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS11c2VyLWNvZzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdXNlci1jb2cpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdXNlci1jb3dib3k6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXVzZXItY293Ym95KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXVzZXItY3Jvd246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXVzZXItY3Jvd24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdXNlci1lZGl0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci11c2VyLWVkaXQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdXNlci1mcmllbmRzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci11c2VyLWZyaWVuZHMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdXNlci1ncmFkdWF0ZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdXNlci1ncmFkdWF0ZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS11c2VyLWhhcmQtaGF0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci11c2VyLWhhcmQtaGF0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXVzZXItaGVhZHNldDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdXNlci1oZWFkc2V0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXVzZXItaW5qdXJlZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdXNlci1pbmp1cmVkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXVzZXItbG9jazpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdXNlci1sb2NrKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXVzZXItbWQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXVzZXItbWQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdXNlci1tZC1jaGF0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci11c2VyLW1kLWNoYXQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdXNlci1taW51czpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdXNlci1taW51cyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS11c2VyLW11c2ljOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci11c2VyLW11c2ljKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXVzZXItbmluamE6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXVzZXItbmluamEpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdXNlci1udXJzZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdXNlci1udXJzZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS11c2VyLXBsdXM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXVzZXItcGx1cyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS11c2VyLXJvYm90OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci11c2VyLXJvYm90KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXVzZXItc2VjcmV0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci11c2VyLXNlY3JldCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS11c2VyLXNoaWVsZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdXNlci1zaGllbGQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdXNlci1zbGFzaDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdXNlci1zbGFzaCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS11c2VyLXRhZzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdXNlci10YWcpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdXNlci10aWU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXVzZXItdGllKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXVzZXItdGltZXM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXVzZXItdGltZXMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdXNlci11bmxvY2s6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXVzZXItdW5sb2NrKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXVzZXItdmlzb3I6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXVzZXItdmlzb3IpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdXNlcnM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXVzZXJzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXVzZXJzLWNsYXNzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci11c2Vycy1jbGFzcyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS11c2Vycy1jb2c6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXVzZXJzLWNvZyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS11c2Vycy1jcm93bjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdXNlcnMtY3Jvd24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdXNlcnMtbWVkaWNhbDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdXNlcnMtbWVkaWNhbCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS11c2Vycy1zbGFzaDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdXNlcnMtc2xhc2gpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdXNwczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdXNwcyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS11c3N1bm5haDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdXNzdW5uYWgpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdXRlbnNpbC1mb3JrOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci11dGVuc2lsLWZvcmspOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdXRlbnNpbC1rbmlmZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdXRlbnNpbC1rbmlmZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS11dGVuc2lsLXNwb29uOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci11dGVuc2lsLXNwb29uKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXV0ZW5zaWxzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci11dGVuc2lscyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS11dGVuc2lscy1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXV0ZW5zaWxzLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS12YWFkaW46YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXZhYWRpbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS12YWN1dW06YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXZhY3V1bSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS12YWN1dW0tcm9ib3Q6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXZhY3V1bS1yb2JvdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS12YWx1ZS1hYnNvbHV0ZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdmFsdWUtYWJzb2x1dGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdmVjdG9yLXNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdmVjdG9yLXNxdWFyZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS12ZW51czpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdmVudXMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdmVudXMtZG91YmxlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci12ZW51cy1kb3VibGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdmVudXMtbWFyczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdmVudXMtbWFycyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS12ZXN0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci12ZXN0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXZlc3QtcGF0Y2hlczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdmVzdC1wYXRjaGVzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXZoczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdmhzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXZpYWNvaW46YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXZpYWNvaW4pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdmlhZGVvOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci12aWFkZW8pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdmlhZGVvLXNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdmlhZGVvLXNxdWFyZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS12aWFsOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci12aWFsKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXZpYWxzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci12aWFscyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS12aWJlcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdmliZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdmlkZW86YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXZpZGVvKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXZpZGVvLXBsdXM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXZpZGVvLXBsdXMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdmlkZW8tc2xhc2g6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXZpZGVvLXNsYXNoKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXZpaGFyYTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdmloYXJhKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXZpbWVvOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci12aW1lbyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS12aW1lby1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXZpbWVvLXNxdWFyZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS12aW1lby12OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci12aW1lby12KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXZpbmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXZpbmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdmlvbGluOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci12aW9saW4pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdmlydXM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXZpcnVzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXZpcnVzLXNsYXNoOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci12aXJ1cy1zbGFzaCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS12aXJ1c2VzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci12aXJ1c2VzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXZrOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci12ayk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS12bnY6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXZudik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS12b2ljZW1haWw6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXZvaWNlbWFpbCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS12b2xjYW5vOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci12b2xjYW5vKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXZvbGxleWJhbGwtYmFsbDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdm9sbGV5YmFsbC1iYWxsKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXZvbHVtZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdm9sdW1lKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXZvbHVtZS1kb3duOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci12b2x1bWUtZG93bik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS12b2x1bWUtbXV0ZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdm9sdW1lLW11dGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdm9sdW1lLW9mZjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdm9sdW1lLW9mZik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS12b2x1bWUtc2xhc2g6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXZvbHVtZS1zbGFzaCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS12b2x1bWUtdXA6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXZvbHVtZS11cCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS12b3RlLW5heTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdm90ZS1uYXkpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdm90ZS15ZWE6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXZvdGUteWVhKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXZyLWNhcmRib2FyZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdnItY2FyZGJvYXJkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXZ1ZWpzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci12dWVqcyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS13YWdvbi1jb3ZlcmVkOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci13YWdvbi1jb3ZlcmVkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXdhbGtlcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItd2Fsa2VyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXdhbGtpZS10YWxraWU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXdhbGtpZS10YWxraWUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0td2Fsa2luZzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItd2Fsa2luZyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS13YWxsZXQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXdhbGxldCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS13YW5kOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci13YW5kKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXdhbmQtbWFnaWM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXdhbmQtbWFnaWMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0td2FyZWhvdXNlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci13YXJlaG91c2UpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0td2FyZWhvdXNlLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItd2FyZWhvdXNlLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS13YXNoZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXdhc2hlcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS13YXRjaDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItd2F0Y2gpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0td2F0Y2gtY2FsY3VsYXRvcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItd2F0Y2gtY2FsY3VsYXRvcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS13YXRjaC1maXRuZXNzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci13YXRjaC1maXRuZXNzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXdhdGNobWFuLW1vbml0b3Jpbmc6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXdhdGNobWFuLW1vbml0b3JpbmcpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0td2F0ZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXdhdGVyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXdhdGVyLWxvd2VyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci13YXRlci1sb3dlcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS13YXRlci1yaXNlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci13YXRlci1yaXNlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXdhdmUtc2luZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItd2F2ZS1zaW5lKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXdhdmUtc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci13YXZlLXNxdWFyZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS13YXZlLXRyaWFuZ2xlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci13YXZlLXRyaWFuZ2xlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXdhdmVmb3JtOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci13YXZlZm9ybSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS13YXZlZm9ybS1wYXRoOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci13YXZlZm9ybS1wYXRoKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXdhemU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXdhemUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0td2ViY2FtOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci13ZWJjYW0pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0td2ViY2FtLXNsYXNoOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci13ZWJjYW0tc2xhc2gpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0td2VlYmx5OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci13ZWVibHkpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0td2VpYm86YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXdlaWJvKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXdlaWdodDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItd2VpZ2h0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXdlaWdodC1oYW5naW5nOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci13ZWlnaHQtaGFuZ2luZyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS13ZWl4aW46YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXdlaXhpbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS13aGFsZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItd2hhbGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0td2hhdHNhcHA6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXdoYXRzYXBwKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXdoYXRzYXBwLXNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItd2hhdHNhcHAtc3F1YXJlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXdoZWF0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci13aGVhdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS13aGVlbGNoYWlyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci13aGVlbGNoYWlyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXdoaXN0bGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXdoaXN0bGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0td2htY3M6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXdobWNzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXdpZmk6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXdpZmkpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0td2lmaS0xOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci13aWZpLTEpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0td2lmaS0yOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci13aWZpLTIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0td2lmaS1zbGFzaDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItd2lmaS1zbGFzaCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS13aWtpcGVkaWEtdzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItd2lraXBlZGlhLXcpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0td2luZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItd2luZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS13aW5kLXR1cmJpbmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXdpbmQtdHVyYmluZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS13aW5kLXdhcm5pbmc6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXdpbmQtd2FybmluZyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS13aW5kb3c6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXdpbmRvdyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS13aW5kb3ctYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci13aW5kb3ctYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXdpbmRvdy1jbG9zZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItd2luZG93LWNsb3NlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXdpbmRvdy1mcmFtZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItd2luZG93LWZyYW1lKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXdpbmRvdy1mcmFtZS1vcGVuOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci13aW5kb3ctZnJhbWUtb3Blbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS13aW5kb3ctbWF4aW1pemU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXdpbmRvdy1tYXhpbWl6ZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS13aW5kb3ctbWluaW1pemU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXdpbmRvdy1taW5pbWl6ZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS13aW5kb3ctcmVzdG9yZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItd2luZG93LXJlc3RvcmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0td2luZG93czpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItd2luZG93cyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS13aW5kc29jazpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItd2luZHNvY2spOyB9XG4uI3skZmEtY3NzLXByZWZpeH0td2luZS1ib3R0bGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXdpbmUtYm90dGxlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXdpbmUtZ2xhc3M6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXdpbmUtZ2xhc3MpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0td2luZS1nbGFzcy1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXdpbmUtZ2xhc3MtYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXdpeDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItd2l4KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXdpemFyZHMtb2YtdGhlLWNvYXN0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci13aXphcmRzLW9mLXRoZS1jb2FzdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS13b2R1OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci13b2R1KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXdvbGYtcGFjay1iYXR0YWxpb246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXdvbGYtcGFjay1iYXR0YWxpb24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0td29uLXNpZ246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXdvbi1zaWduKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXdvcmRwcmVzczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItd29yZHByZXNzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXdvcmRwcmVzcy1zaW1wbGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXdvcmRwcmVzcy1zaW1wbGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0td3BiZWdpbm5lcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItd3BiZWdpbm5lcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS13cGV4cGxvcmVyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci13cGV4cGxvcmVyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXdwZm9ybXM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXdwZm9ybXMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0td3ByZXNzcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItd3ByZXNzcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS13cmVhdGg6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXdyZWF0aCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS13cmVuY2g6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXdyZW5jaCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS14LXJheTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXIteC1yYXkpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0teGJveDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXIteGJveCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS14aW5nOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci14aW5nKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXhpbmctc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci14aW5nLXNxdWFyZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS15LWNvbWJpbmF0b3I6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXktY29tYmluYXRvcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS15YWhvbzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXIteWFob28pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0teWFtbWVyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci15YW1tZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0teWFuZGV4OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci15YW5kZXgpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0teWFuZGV4LWludGVybmF0aW9uYWw6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXlhbmRleC1pbnRlcm5hdGlvbmFsKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXlhcm46YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXlhcm4pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0teWVscDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXIteWVscCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS15ZW4tc2lnbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXIteWVuLXNpZ24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0teWluLXlhbmc6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXlpbi15YW5nKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXlvYXN0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci15b2FzdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS15b3V0dWJlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci15b3V0dWJlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXlvdXR1YmUtc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci15b3V0dWJlLXNxdWFyZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS16aGlodTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItemhpaHUpOyB9XG4iLCIvLyBTY3JlZW4gUmVhZGVyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uc3Itb25seSB7IEBpbmNsdWRlIHNyLW9ubHk7IH1cbi5zci1vbmx5LWZvY3VzYWJsZSB7IEBpbmNsdWRlIHNyLW9ubHktZm9jdXNhYmxlOyB9XG4iLCIvKiFcbiAqIEZvbnQgQXdlc29tZSBQcm8gNS4xNS40IGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tXG4gKiBMaWNlbnNlIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20vbGljZW5zZSAoQ29tbWVyY2lhbCBMaWNlbnNlKVxuICovXG5AaW1wb3J0ICd2YXJpYWJsZXMnO1xuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdGb250IEF3ZXNvbWUgNSBQcm8nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtZGlzcGxheTogJGZhLWZvbnQtZGlzcGxheTtcbiAgc3JjOiB1cmwoJyN7JGZhLWZvbnQtcGF0aH0vZmEtcmVndWxhci00MDAuZW90Jyk7XG4gIHNyYzogdXJsKCcjeyRmYS1mb250LXBhdGh9L2ZhLXJlZ3VsYXItNDAwLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gIHVybCgnI3skZmEtZm9udC1wYXRofS9mYS1yZWd1bGFyLTQwMC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbiAgdXJsKCcjeyRmYS1mb250LXBhdGh9L2ZhLXJlZ3VsYXItNDAwLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgdXJsKCcjeyRmYS1mb250LXBhdGh9L2ZhLXJlZ3VsYXItNDAwLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgdXJsKCcjeyRmYS1mb250LXBhdGh9L2ZhLXJlZ3VsYXItNDAwLnN2ZyNmb250YXdlc29tZScpIGZvcm1hdCgnc3ZnJyk7XG59XG5cbi5mYXIge1xuICBmb250LWZhbWlseTogJ0ZvbnQgQXdlc29tZSA1IFBybyc7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG4iLCIvKiFcbiAqIEZvbnQgQXdlc29tZSBQcm8gNS4xNS40IGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tXG4gKiBMaWNlbnNlIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20vbGljZW5zZSAoQ29tbWVyY2lhbCBMaWNlbnNlKVxuICovXG5AaW1wb3J0ICd2YXJpYWJsZXMnO1xuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdGb250IEF3ZXNvbWUgNSBQcm8nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7XG4gIGZvbnQtZGlzcGxheTogJGZhLWZvbnQtZGlzcGxheTtcbiAgc3JjOiB1cmwoJyN7JGZhLWZvbnQtcGF0aH0vZmEtc29saWQtOTAwLmVvdCcpO1xuICBzcmM6IHVybCgnI3skZmEtZm9udC1wYXRofS9mYS1zb2xpZC05MDAuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgdXJsKCcjeyRmYS1mb250LXBhdGh9L2ZhLXNvbGlkLTkwMC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbiAgdXJsKCcjeyRmYS1mb250LXBhdGh9L2ZhLXNvbGlkLTkwMC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gIHVybCgnI3skZmEtZm9udC1wYXRofS9mYS1zb2xpZC05MDAudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLFxuICB1cmwoJyN7JGZhLWZvbnQtcGF0aH0vZmEtc29saWQtOTAwLnN2ZyNmb250YXdlc29tZScpIGZvcm1hdCgnc3ZnJyk7XG59XG5cbi5mYSxcbi5mYXMge1xuICBmb250LWZhbWlseTogJ0ZvbnQgQXdlc29tZSA1IFBybyc7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7XG59XG4iLCIvKiFcbiAqIEZvbnQgQXdlc29tZSBQcm8gNS4xNS40IGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tXG4gKiBMaWNlbnNlIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20vbGljZW5zZSAoQ29tbWVyY2lhbCBMaWNlbnNlKVxuICovXG5AaW1wb3J0ICd2YXJpYWJsZXMnO1xuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdGb250IEF3ZXNvbWUgNSBQcm8nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGZvbnQtZGlzcGxheTogJGZhLWZvbnQtZGlzcGxheTtcbiAgc3JjOiB1cmwoJyN7JGZhLWZvbnQtcGF0aH0vZmEtbGlnaHQtMzAwLmVvdCcpO1xuICBzcmM6IHVybCgnI3skZmEtZm9udC1wYXRofS9mYS1saWdodC0zMDAuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgdXJsKCcjeyRmYS1mb250LXBhdGh9L2ZhLWxpZ2h0LTMwMC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbiAgdXJsKCcjeyRmYS1mb250LXBhdGh9L2ZhLWxpZ2h0LTMwMC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gIHVybCgnI3skZmEtZm9udC1wYXRofS9mYS1saWdodC0zMDAudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLFxuICB1cmwoJyN7JGZhLWZvbnQtcGF0aH0vZmEtbGlnaHQtMzAwLnN2ZyNmb250YXdlc29tZScpIGZvcm1hdCgnc3ZnJyk7XG59XG5cbi5mYWwge1xuICBmb250LWZhbWlseTogJ0ZvbnQgQXdlc29tZSA1IFBybyc7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG4iLCJAaW1wb3J0IFwidmFyaWFibGVzXCI7XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJGcnV0aWdlck5leHRQcm9cIjtcbiAgc3JjOiB1cmwoXCIjeyRmbnAtZm9udC1wYXRofS9GcnV0aWdlck5leHRQcm8tTWVkaXVtQ25fMC5vdGZcIikgZm9ybWF0KFwib3BlbnR5cGVcIik7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIkZydXRpZ2VyTmV4dFByb1wiO1xuICBzcmM6IHVybChcIiN7JGZucC1mb250LXBhdGh9L0ZydXRpZ2VyTmV4dFByby1Cb2xkQ25fMC5vdGZcIikgZm9ybWF0KFwib3BlbnR5cGVcIik7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIkZydXRpZ2VyTmV4dFByb1wiO1xuICBzcmM6IHVybChcIiN7JGZucC1mb250LXBhdGh9L0ZydXRpZ2VyTmV4dFByby1CbGFja0NuXzAub3RmXCIpIGZvcm1hdChcIm9wZW50eXBlXCIpO1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJGcnV0aWdlck5leHRQcm8gUmVndWxhclwiO1xuICBzcmM6IHVybChcIiN7JGZucC1mb250LXBhdGh9L0ZydXRpZ2VyTmV4dFByby1SZWd1bGFyQ25fMC5vdGZcIikgZm9ybWF0KFwib3BlbnR5cGVcIik7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbiIsIkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIklzdG9rXCI7XG4gIHNyYzogdXJsKFwiI3skaXN0b2stZm9udC1wYXRofS9Jc3Rva1dlYi1Cb2xkLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIklzdG9rXCI7XG4gIHNyYzogdXJsKFwiI3skaXN0b2stZm9udC1wYXRofS9Jc3Rva1dlYi1Cb2xkSXRhbGljLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIklzdG9rXCI7XG4gIHNyYzogdXJsKFwiI3skaXN0b2stZm9udC1wYXRofS9Jc3Rva1dlYi1JdGFsaWMudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJJc3Rva1wiO1xuICBzcmM6IHVybChcIiN7JGlzdG9rLWZvbnQtcGF0aH0vSXN0b2tXZWItUmVndWxhci50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbiIsIi8qIHN0eWxlbGludC1kaXNhYmxlICovXG5cbkBtaXhpbiBiYXNpYy1ncmlkKCkge1xuICAgIC5jb250YWluZXIge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogJHNldHRpbmctZ3JpZC1tYXgtd2lkdGg7XG4gICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgcGFkZGluZzogMCAkc2V0dGluZy1ncmlkLXNwYWNlO1xuXG4gICAgICAgICYtLWNoZWNrb3V0IHtcbiAgICAgICAgICAgIG1heC13aWR0aDogODAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgICAgICYtLWZhdHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1tYXgoJHNtLW1heCl7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogIDAgcmVtKC0xNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY29sIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuXG4gICAgICAgICYge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYnJlYWtwb2ludCwgJGVkZ2VzIGluICRzZXR0aW5nLWJyZWFrcG9pbnRzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbigkZWRnZXMpKSB7XG4gICAgICAgICAgICAgICAgQGZvciAkY29sdW1uIGZyb20gMSB0aHJvdWdoICRzZXR0aW5nLWdyaWQtY29sdW1ucyB7XG4gICAgICAgICAgICAgICAgICAgICYtLSN7JGJyZWFrcG9pbnR9LSN7JGNvbHVtbn0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGhlbHBlci1ncmlkLXNwYW4oJGNvbHVtbik7XG4gICAgICAgICAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGhlbHBlci1ncmlkLXNwYW4oJGNvbHVtbik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLS0jeyRicmVha3BvaW50fS1hdXRvIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1tYXgoaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1tYXgoJGVkZ2VzKSkge1xuICAgICAgICAgICAgICAgICYtLSN7JGJyZWFrcG9pbnR9LWZpcnN0IHtcbiAgICAgICAgICAgICAgICAgICAgb3JkZXI6IC0xO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYtLSN7JGJyZWFrcG9pbnR9LWxhc3Qge1xuICAgICAgICAgICAgICAgICAgICBvcmRlcjogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbW9iaWxlLWV4cGFuZCB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbXtcbiAgICAgICAgICAgICYtaGlkZXtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1tYXgoJHNtLW1heCl7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWR7XG4gICAgICAgICAgICAmLWhpZGV7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtYmV0d2Vlbigkc20tbWF4LCAkbWQtbWF4KXtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS10b3Age1xuICAgICAgICAgICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGVmdCB7XG4gICAgICAgICAgICBqdXN0aWZ5LXNlbGY6IGZsZXgtc3RhcnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yaWdodCB7XG4gICAgICAgICAgICBqdXN0aWZ5LXNlbGY6IGZsZXgtZW5kO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1zZWxmOiBjZW50ZXI7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVxdWFsIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20taW5kZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAkc2V0dGluZy1ncmlkLXNwYWNlLW1vYmlsZTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAkc2V0dGluZy1ncmlkLXNwYWNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmdyaWQge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG5cbiAgICAgICAgJiB7XG4gICAgICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdG9wIHtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxlZnQge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmlnaHQge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcblxuICAgICAgICAgICAgJiA+IC5jb2wge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWdhcCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzZXR0aW5nLWdyaWQtc3BhY2UtbW9iaWxlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNldHRpbmctZ3JpZC1zcGFjZS1tb2JpbGU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzZXR0aW5nLWdyaWQtc3BhY2U7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNldHRpbmctZ3JpZC1zcGFjZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJiA+IC5jb2wge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNldHRpbmctZ3JpZC1zcGFjZS1tb2JpbGU7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctZ3JpZC1zcGFjZS1tb2JpbGU7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNldHRpbmctZ3JpZC1zcGFjZTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctZ3JpZC1zcGFjZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1nYXAtc21hbGxlciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogcmVtKC01KTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogcmVtKC01KTtcblxuICAgICAgICAgICAgJiA+IC5jb2wge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogcmVtKDUpO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbSg1KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWp1c3RpZnktY29sdW1uIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuICAgICAgICAgICAgJiA+IC5jb2wge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogYXV0bztcblxuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1qdXN0aWZ5IHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuICAgICAgICAgICAgJiA+IC5jb2wge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcblxuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tbm93cmFwIHtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbm93cmFwLWxnLW9ubHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY29sdW1uIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jb2x1bW4tbW9iLXJldmVyc2Uge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICYuY29udGFpbmVyIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogJHNldHRpbmctZ3JpZC1tYXgtd2lkdGg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtaXhpbiBncmlkLW9yZGVyKCRpbmRleCkge1xuICAgIG9yZGVyOiAkaW5kZXg7XG59XG4iLCJAbWl4aW4gYmFzaWMtcmVzZXQoKSB7XG4gICAgKiB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1yZXNldDtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmFjdGl2ZSxcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBvdXRsaW5lOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBodG1sLFxuICAgIGJvZHkge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgaHRtbCB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1yZXNldDtcbiAgICB9XG5cbiAgICAvLyBIVE1MNSBkaXNwbGF5LXJvbGUgcmVzZXQgZm9yIG9sZGVyIGJyb3dzZXJzXG5cbiAgICBhcnRpY2xlLFxuICAgIGFzaWRlLFxuICAgIGRldGFpbHMsXG4gICAgZmlnY2FwdGlvbixcbiAgICBmaWd1cmUsXG4gICAgZm9vdGVyLFxuICAgIGhlYWRlcixcbiAgICBoZ3JvdXAsXG4gICAgbWVudSxcbiAgICBuYXYsXG4gICAgc2VjdGlvbixcbiAgICBmb3JtLFxuICAgIG1haW4ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICBvbCxcbiAgICB1bCB7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgfVxuXG4gICAgYmxvY2txdW90ZSxcbiAgICBxIHtcbiAgICAgICAgcXVvdGVzOiBub25lO1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRhYmxlIHtcbiAgICAgICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICAgICAgYm9yZGVyLXNwYWNpbmc6IDA7XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIC5jdXN0b20tZWxlbWVudCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbn1cbiIsIkBtaXhpbiBoZWxwZXItcmVzZXQge1xuICAgIC8vIGh0dHBzOi8vd3d3LnBhdWxpcmlzaC5jb20vMjAxMi9ib3gtc2l6aW5nLWJvcmRlci1ib3gtZnR3L1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGZvbnQ6IGluaGVyaXQ7XG4gICAgY29sb3I6IGluaGVyaXQ7XG5cbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3Itd2hpdGUsIDApO1xufVxuIiwiQGltcG9ydCAnLi4vZm9udGF3ZXNvbWUnO1xuQGltcG9ydCAnLi4vZnJ1dGlnZXJuZXh0cHJvJztcbkBpbXBvcnQgJy4uL2lzdG9rJztcblxuQG1peGluIGJhc2ljLXR5cG9ncmFwaHkoKSB7XG4gICAgQGZvbnQtZmFjZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBDaXJjdWxhcjtcbiAgICAgICAgc3JjOiB1cmwoJ2h0dHBzOi8vczMuZXUtY2VudHJhbC0xLmFtYXpvbmF3cy5jb20vc3ByeWtlci9mb250cy9jaXJjdWxhci1wcm8vbGluZXRvLWNpcmN1bGFyLXByby1ib29rLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vczMuZXUtY2VudHJhbC0xLmFtYXpvbmF3cy5jb20vc3ByeWtlci9mb250cy9jaXJjdWxhci1wcm8vbGluZXRvLWNpcmN1bGFyLXByby1ib29rLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIH1cblxuICAgIEBmb250LWZhY2Uge1xuICAgICAgICBmb250LWZhbWlseTogQ2lyY3VsYXI7XG4gICAgICAgIHNyYzogdXJsKCdodHRwczovL3MzLmV1LWNlbnRyYWwtMS5hbWF6b25hd3MuY29tL3NwcnlrZXIvZm9udHMvY2lyY3VsYXItcHJvL2xpbmV0by1jaXJjdWxhci1wcm8tbWVkaXVtLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vczMuZXUtY2VudHJhbC0xLmFtYXpvbmF3cy5jb20vc3ByeWtlci9mb250cy9jaXJjdWxhci1wcm8vbGluZXRvLWNpcmN1bGFyLXByby1tZWRpdW0ud29mZicpIGZvcm1hdCgnd29mZicpO1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgfVxuXG4gICAgQGZvbnQtZmFjZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBDaXJjdWxhcjtcbiAgICAgICAgc3JjOiB1cmwoJ2h0dHBzOi8vczMuZXUtY2VudHJhbC0xLmFtYXpvbmF3cy5jb20vc3ByeWtlci9mb250cy9jaXJjdWxhci1wcm8vbGluZXRvLWNpcmN1bGFyLXByby1ib2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vczMuZXUtY2VudHJhbC0xLmFtYXpvbmF3cy5jb20vc3ByeWtlci9mb250cy9jaXJjdWxhci1wcm8vbGluZXRvLWNpcmN1bGFyLXByby1ib2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIH1cblxuICAgIGh0bWwge1xuICAgICAgICBmb250LXNpemU6ICRzZXR0aW5nLWZvbnQtc2l6ZS1iYXNlO1xuICAgIH1cblxuICAgIGJvZHkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KGRlZmF1bHQpO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS00O1xuICAgICAgICBmb250LWZhbWlseTogJHNldHRpbmctZm9udC1mYW1pbHk7XG4gICAgfVxuXG4gICAgKiB7XG4gICAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgIH1cblxuICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgIGgjeyRpfSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQobWVkaXVtKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS01O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYixcbiAgICBzdHJvbmcge1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgIH1cblxuICAgIGksXG4gICAgZW0sXG4gICAgY2l0ZSB7XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICB9XG5cbiAgICBociB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcblxuICAgICAgICAmIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1ncmF5LTM7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc21hbGwge1xuICAgICAgICBmb250LXNpemU6IHJlbSgxMik7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBiaWcge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgfVxuXG4gICAgcCxcbiAgICBibG9ja3F1b3RlLFxuICAgIGlmcmFtZSB7XG4gICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAnRnJ1dGlnZXJOZXh0UHJvIFJlZ3VsYXInO1xuICAgIH1cbn1cbiIsIiRzZXR0aW5nLWZvbnQtZmFtaWx5OiAnRnJ1dGlnZXJOZXh0UHJvJztcbiRzZXR0aW5nLWZvbnQtZmFtaWx5LWlzdG9rOiAnSXN0b2snLCBzYW5zLXNlcmlmO1xuXG4kc2V0dGluZy1mb250LXNpemU6IChcbiAgICAxOiByZW0oNDApLFxuICAgIDI6IHJlbSgzMiksXG4gICAgMzogcmVtKDI0KSxcbiAgICA0OiByZW0oMTgpLFxuICAgIDU6IHJlbSgxNiksXG4gICAgNjogcmVtKDE0KSxcbiAgICBiaWc6IHJlbSgxOCksXG4gICAgZGVmYXVsdDogcmVtKDE2KSxcbiAgICBzbWFsbDogcmVtKDE0KSxcbiAgICB0aW55OiByZW0oMTIpXG4pO1xuXG4kc2V0dGluZy1mb250LXdlaWdodDogKFxuICAgIHJlZ3VsYXI6IDQwMCxcbiAgICBtZWRpdW06IDUwMCxcbiAgICBib2xkOiA1MDBcbik7XG4iLCIkc2V0dGluZy1ncmlkLW1heC13aWR0aDogMTIwMHB4O1xuJHNldHRpbmctZ3JpZC1tYXgtd2lkdGgtLWZhdDogMTIzMHB4O1xuJHNldHRpbmctZ3JpZC1zcGFjZTogMTVweDtcbiRzZXR0aW5nLWdyaWQtc3BhY2UtbW9iaWxlOiA5cHg7XG5cbkBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1heCgkbWQtbWF4KXtcbiAgICAkc2V0dGluZy1ncmlkLXNwYWNlOiAxMHB4O1xufVxuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgyMCk7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE1KTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvdW50ZXIge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhtZWRpdW0pO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE1KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2VsZWN0IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIHJlbSg1KTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiByZW0oMzApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ncmlkLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJG1kLW1pbikge1xuICAgICAgICAgICAgICAgICAgICAtd2Via2l0LWJveC1wYWNrOiBlbmQ7XG4gICAgICAgICAgICAgICAgICAgIC1tcy1mbGV4LXBhY2s6IGVuZDtcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWx0ZXItZ3JpZCB7XG4gICAgICAgICAgICBtYXJnaW46IDAgcmVtKC01KTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2F0YWxvZy1wYWdlLXNvcnQoKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IHJlbSgxMCk7XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTcpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiByZW0oMC4yKTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oMTYpO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IHJlbSgyNik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS00O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNDtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWluLXdpZHRoOiByZW0oNDIpO1xuICAgICAgICAgICAgd2lkdGg6IHJlbSg0Mik7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAudGh1bWJuYWlsX19pbWFnZSB7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogYXV0bztcbiAgICAgICAgICAgICAgICByaWdodDogYXV0bztcblxuICAgICAgICAgICAgICAgICYtbm8taW1hZ2Uge1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtIDhweCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgxMik7XG4gICAgICAgICAgICBmb250LXdlaWdodDogZncobWVkaXVtKTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMTQpO1xuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IHJlbSgwLjEpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCk7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbDtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgnLmJhZGdlJykge1xuICAgICYge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkc2V0dGluZy1ib3JkZXItcmFkaXVzO1xuICAgICAgICBmb250LXNpemU6IHJlbSgxMSk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhib2xkKTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IHJlbSgwLjQpO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktMTtcbiAgICB9XG5cbiAgICAmLS1zaG9wcGluZy1saXN0LFxuICAgICYtLW11bHRpLWNhcnQge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTQ7XG4gICAgICAgIHBhZGRpbmc6IHJlbSg0KSByZW0oNSk7XG4gICAgICAgIG1hcmdpbi1yaWdodDogcmVtKDkpO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBtaW4td2lkdGg6IHJlbSg1Mik7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiByZW0oOSk7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiByZW0oOSk7XG4gICAgICAgICAgICBtaW4td2lkdGg6IHJlbSg2NCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS10aXRsZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktMztcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB9XG5cbiAgICAmLS1hY2Nlc3Mge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuXG4gICAgJi0tc3VtbWFyeSB7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiByZW0oMC4yKTtcbiAgICAgICAgcGFkZGluZzogcmVtKDUpIHJlbSg4KTtcbiAgICB9XG59XG4iLCIkc2V0dGluZy1ib3JkZXItcmFkaXVzOiAycHg7XG4kc2V0dGluZy1ib3JkZXItcmFkaXVzLTE6IDVweDtcbiRzZXR0aW5nLWJvcmRlci1yYWRpdXMtMjogMTVweDtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNztcbiAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IHJlbSgyNykgcmVtKDIwKSByZW0oMzApO1xuICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgcGFkZGluZzogcmVtKDMyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbSgxNikgcmVtKDMyKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1ib3goKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJvcmRlci1jb2xvciBjb2xvcik7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogc29saWQgMXB4ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRzZXR0aW5nLWJvcmRlci1yYWRpdXM7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgZm9udC1zaXplOiByZW0oMTcpO1xuICAgICAgICBmb250LXdlaWdodDogZncobm9ybWFsKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgyMCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogcmVtKDcpIHJlbSgyMCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1heCgkbWQtbWF4KXtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE2KTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMTgpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtaWNvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtc2Vjb25kIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci13aGl0ZSk7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLXdoaXRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtYWx0ZXJuYXRpdmUge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTM7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktMztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0ZXJuYXRpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFkZGl0aW9uYWwge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS0xMztcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS0xMztcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWdyYXktMyk7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1ncmF5LTMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWVkaXVtIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE0KTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW0oMTApIHJlbSgzMCk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgxNik7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgyMCk7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogcmVtKDE1KSByZW0oMjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE2KTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMjApO1xuICAgICAgICAgICAgcGFkZGluZzogcmVtKDE1KSByZW0oMjcpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiByZW0oMjcpO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbSgyNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IHJlbSgxMik7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDEyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZvcm0ge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IHJlbSgxNCk7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDE0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRpZ2h0IHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogcmVtKDIwKTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbSgyMCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1tb2JpbGUtdGlnaHQge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiByZW0oMTUpO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogcmVtKDE1KTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogcmVtKDMwKTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiByZW0oMzApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLXNtLW9ubHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWF4KCRtZCAtIDEpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZC1zbS1sZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1tYXgoJGxnIC0gMSkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2hlY2tvdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRtZCkge1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogcmVtKDIwMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lZGl0LFxuICAgICAgICAmLS1iYWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS0yO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2sge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KHJlZ3VsYXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWFpbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdC1ob3ZlcjtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdC1ob3ZlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnRm9udCBBd2Vzb21lIDUgUHJvJztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlYXJjaCB7XG4gICAgICAgICAgICB3aWR0aDogcmVtKDM1KTtcbiAgICAgICAgICAgIGhlaWdodDogcmVtKDM1KTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ1xcZjAwMic7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hZGQtdG8tY2FydCB7XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ1xcZjA3YSc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiByZW0oMTQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZ3JheSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTg7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktODtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE2KTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oJHNldHRpbmctY29sb3ItZ3JheS04LCAxMCUpO1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbGlnaHRlbigkc2V0dGluZy1jb2xvci1ncmF5LTgsIDEwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAjMGEwYTBhO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwwKTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogd2hpdGU7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogIzBhMGEwYTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLDApO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogd2hpdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuXG4gICAgICAgICYtLWxpbmstaWNvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW0oNikgcmVtKDcpO1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTYpO1xuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnXFxmMDhlJztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgxMCk7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHJlbSg3KTtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgdG9wOiByZW0oLTEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWF4KCRtZC1tYXgpe1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE4KTtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtKDIxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNxdWFyZSwgJi0tcGFnaW5hdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogcmVtKDM0KTtcbiAgICAgICAgICAgIGhlaWdodDogcmVtKDM0KTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWdyYXktODtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktMTA7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS04O1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE1KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBhZ2luYXRpb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktODtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE1KTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTg7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS0xMDtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktODtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXJyb3cge1xuICAgICAgICAgICAgd2lkdGg6IHJlbSgzNCk7XG4gICAgICAgICAgICBoZWlnaHQ6IHJlbSgzNCk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDI4KTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgcmVtKDcpO1xuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ1xcZjA1NCc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYuaXMtZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTExO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6IGRhcmtlbigkc2V0dGluZy1jb2xvci1ncmF5LTgsIDEwJSk7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJvdGF0ZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTgwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWdyaWQge1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICdcXGYwMGEnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGlzdCB7XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ1xcZjAzYSc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmZvIHtcbiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE1KTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktMTM7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktMTM7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJHNldHRpbmctY29sb3ItZ3JheS0xMywgMTAlKTtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IGRhcmtlbigkc2V0dGluZy1jb2xvci1ncmF5LTEzLCAxMCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWF4KCRtZC1tYXgpe1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE4KTtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtKDIxKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xpcGJvYXJkIHtcbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnXFxmNDZkJztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgxNSk7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiByZW0oMTApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tbm8tcGFkZGluZyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1maWx0ZXJ7XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnXFxmMWRlJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogcmVtKDYpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICB3aWR0aDogcmVtKDE2KTtcbiAgICAgICAgICAgIGhlaWdodDogcmVtKDE2KTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWdyYXktODtcbiAgICAgICAgICAgIGNvbG9yOiRzZXR0aW5nLWNvbG9yLWdyYXktODtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE2KTtcbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTEwO1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS04O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktODtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgxMik7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiByZW0oMTIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICdcXGYwNzgnO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnXFxmMDc3JztcblxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0td2lkZXIge1xuICAgICAgICAgICAgbWluLXdpZHRoOiByZW0oMTYwKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlY29uZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IgYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTM7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktMjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTEzO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTEzO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktMTM7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTEzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1qdXN0aWZ5IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hZGRpdGlvbmFsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbSgxNCkgcmVtKDIwKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTY7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS01O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCByZW0oMTApIHJlbSgxOCkgMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWJsYWNrLCAwLjA1KSwgMCByZW0oMykgcmVtKDMpIDAgcmdiYSgkc2V0dGluZy1jb2xvci1ibGFjaywgMC4wNCk7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgxNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10YWItZ3JheSB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgxNSk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS01O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktMTE7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS01O1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktMTtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvcHBpbmctbGlzdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IHJlbSgyMik7XG4gICAgICAgICAgICBsZWZ0OiByZW0oMjIpO1xuICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtICN7cmVtKDQ0KX0pO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5vLWhvcml6b250YWwtcGFkZGluZyB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGFiIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDEzKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbSgzKSByZW0oNSk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtKDIwKTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweCA2cHggMCAwO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJsYWNrLWJvcmRlcntcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlLTI7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ibGFjay1ib3JkZXI6aG92ZXIsXG4gICAgICAgICYtLWJsYWNrLWJvcmRlcjpmb2N1cyxcbiAgICAgICAgJi0tYmxhY2stYm9yZGVyOmFjdGl2ZVxuICAgICAgICB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZS0xO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJsYWNrLWJvcmRlciAuc3Bpbm5lcntcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1yZWQtMTtcbiAgICAgICAgfVxuXG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWJ1dHRvbi1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQGluY2x1ZGUgc2hvcC11aS1idXR0b247XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgbm93cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIGJhY2tncm91bmQtY29sb3IpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogcmVtKDI2KTtcbiAgICAgICAgICAgIGhlaWdodDogcmVtKDI2KTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMjYpO1xuICAgICAgICAgICAgYm9yZGVyOiByZW0oMSkgc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHJlbSgxMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkc2V0dGluZy1ib3JkZXItcmFkaXVzO1xuICAgICAgICAgICAgZmxleDogbm9uZTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogcmVtKDE0KTtcbiAgICAgICAgICAgICAgICB3aWR0aDogcmVtKDIwKTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHJlbSgyMCk7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgyMCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWZpbHRlciB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IHJlbSgyNCk7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiByZW0oMjQpO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMjQpO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMS4xMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMS4xMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjEyNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3BwaW5nLWxpc3Qge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IHJlbSgxMik7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IHJlbSgxNSk7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogcmVtKDEwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFsdGVybmF0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IHNvbGlkIHJlbSgyKSAkc2V0dGluZy1jb2xvci1ncmF5LTI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc21hcnQtcHJvamVjdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiByZW0oOCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB+IHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAgICAgICAgICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJi0tc21hcnQtcHJvamVjdCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmVlbi0xO1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmVlbi0xO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJi0tYWx0ZXJuYXRpdmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktMjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICN7JG5hbWV9X19sYWJlbCB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhib2xkKTtcblxuICAgICAgICAgICAgICAgICAgICAmLS1hbHRlcm5hdGl2ZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogZncocmVndWxhcik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fYm94LFxuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fYm94OmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS0xO1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6Y2hlY2tlZCB+ICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTE7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19sYWJlbCB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTI7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuXG4gICAgICAgICAgICAmLS1hbHRlcm5hdGl2ZSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktMjtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgxNCk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogZncocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgIGZsZXg6IDE7XG5cbiAgICAgICAgICAgICYtLWZpbHRlciB7XG4gICAgICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhyZWd1bGFyKTtcbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hbHRlcm5hdGl2ZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgxNSk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KHJlZ3VsYXIpO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMjApO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTI7XG4gICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNtYXJ0LXByb2plY3Qge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE2KTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JlZW4tMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvdW50ZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiByZW0oOCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1maWx0ZXIge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgxNSk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtKDE4KTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdGVybmF0aXZlIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgxNSk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9X19ib3gtLWFsdGVybmF0aXZlIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGRwIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogcmVtKDEzMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9X19ib3gtLWFsdGVybmF0aXZlIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICAgICAmLS1zbWFydC1wcm9qZWN0IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmVlbi0xO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2lucHV0W2Rpc2FibGVkXSB+ICN7JG5hbWV9X19ib3gsXG4gICAgICAgICAgICAjeyRuYW1lfV9faW5wdXQtLWRpc2FibGVkIH4gI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY2hlY2tib3g7XG4iLCIkc2V0dGluZy16aS1lbGVtZW50OiAxO1xuJHNldHRpbmctemktY29tcGFueS1tZW51OiAxMDtcbiRzZXR0aW5nLXppLXRvb2x0aXA6IDYwMDtcbiRzZXR0aW5nLXppLW92ZXJsYXk6IDcwMDtcbiRzZXR0aW5nLXppLWRyb3Bkb3duOiAxMDAwO1xuJHNldHRpbmctemktY29tcGFueS1tZW51OiAxMDtcbiRzZXR0aW5nLXppLWNvbXBhcmUtcmVtb3ZlOiAxO1xuJHNldHRpbmctemktc3Vic3RyYXRlOiAtMTtcbiRzZXR0aW5nLXppLWZpbHRlcjogOTAwO1xuJHNldHRpbmctemktY3VzdG9tLXNlbGVjdDogMTE1MDtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplLWJpZzogMS4yNXJlbTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IDEuNXJlbTtcblxuQGluY2x1ZGUgc2hvcC11aS1pY29uIHtcbiAgICAmLS1sb2dvIHtcbiAgICAgICAgd2lkdGg6IHJlbSg5Nik7XG4gICAgICAgIGhlaWdodDogcmVtKDMyKTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgIHdpZHRoOiByZW0oMTc1KTtcbiAgICAgICAgICAgIGhlaWdodDogcmVtKDcwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkeGwpIHtcbiAgICAgICAgICAgIHdpZHRoOiByZW0oMTk1KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLWNoZWNrb3V0IHtcbiAgICAgICAgd2lkdGg6IHJlbSgxMDkpO1xuICAgICAgICBoZWlnaHQ6IHJlbSgzMik7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgd2lkdGg6IHJlbSgxNjcpO1xuICAgICAgICAgICAgaGVpZ2h0OiByZW0oNjApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0taGVhZGVyLWNoZWNrIHtcbiAgICAgICAgd2lkdGg6IHJlbSgxMik7XG4gICAgICAgIGhlaWdodDogcmVtKDkpO1xuICAgICAgICBtYXJnaW46IHJlbSgtMikgcmVtKDkpIDAgMDtcbiAgICB9XG5cbiAgICAmLS1wcm9ncmVzcy1jaGVjayB7XG4gICAgICAgIHdpZHRoOiByZW0oNyk7XG4gICAgICAgIGhlaWdodDogcmVtKDUpO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbWQpIHtcbiAgICAgICAgICAgIHdpZHRoOiByZW0oMTApO1xuICAgICAgICAgICAgaGVpZ2h0OiByZW0oOCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1waG9uZSB7XG4gICAgICAgIHdpZHRoOiByZW0oMTUpO1xuICAgICAgICBoZWlnaHQ6IHJlbSgxNSk7XG4gICAgICAgIG1hcmdpbi1yaWdodDogcmVtKDYpO1xuICAgIH1cblxuICAgICYtLXNlYXJjaCB7XG4gICAgICAgIHdpZHRoOiByZW0oMTYpO1xuICAgICAgICBoZWlnaHQ6IHJlbSgxNik7XG4gICAgICAgIHN0cm9rZS13aWR0aDogcmVtKDAuNSk7XG5cbiAgICAgICAgJi1yZXN1bHQge1xuICAgICAgICAgICAgZmlsbDogJHNldHRpbmctY29sb3ItZ3JheS00O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiByZW0oNCk7XG5cbiAgICAgICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiByZW0oNCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS11c2VyIHtcbiAgICAgICAgd2lkdGg6IHJlbSgxOCk7XG4gICAgICAgIGhlaWdodDogcmVtKDIxKTtcbiAgICAgICAgbWFyZ2luLXRvcDogcmVtKDcpO1xuICAgIH1cblxuICAgICYtLXF1aWNrLW9yZGVyIHtcbiAgICAgICAgd2lkdGg6IHJlbSgyMSk7XG4gICAgICAgIGhlaWdodDogcmVtKDE1KTtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICB3aWR0aDogcmVtKDMyKTtcbiAgICAgICAgICAgIGhlaWdodDogcmVtKDE5KTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSgzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLXF1aWNrLW9yZGVyLWRlbGV0ZS1yb3cge1xuICAgICAgICB3aWR0aDogcmVtKDE0KTtcbiAgICAgICAgaGVpZ2h0OiByZW0oMTUpO1xuICAgICAgICBmaWxsOiAkc2V0dGluZy1jb2xvci1ncmF5LTI7XG4gICAgfVxuXG4gICAgJi0taGVhZGVyLXNob3BwaW5nLWxpc3Qge1xuICAgICAgICB3aWR0aDogcmVtKDEzKTtcbiAgICAgICAgaGVpZ2h0OiByZW0oMTIpO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgIHdpZHRoOiByZW0oMTcpO1xuICAgICAgICAgICAgaGVpZ2h0OiByZW0oMTYpO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtKDEwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLWNhcnQge1xuICAgICAgICB3aWR0aDogcmVtKDIwKTtcbiAgICAgICAgaGVpZ2h0OiByZW0oMTcpO1xuICAgIH1cblxuICAgICYtLWNvbnRhY3Qge1xuICAgICAgICB3aWR0aDogcmVtKDIyKTtcbiAgICAgICAgaGVpZ2h0OiByZW0oMjQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oOCk7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLWNyb3NzIHtcbiAgICAgICAgd2lkdGg6IHJlbSgxMCk7XG4gICAgICAgIGhlaWdodDogcmVtKDEwKTtcbiAgICB9XG5cbiAgICAmLS1yZXZlcnNlIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICB9XG5cbiAgICAmLS10b2dnbGVyLWNyb3NzIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogcmVtKDEwKTtcbiAgICAgICAgaGVpZ2h0OiByZW0oMTApO1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTU7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgaGVpZ2h0OiByZW0oMik7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgIGhlaWdodDogcmVtKDMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IHJlbSgyKTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgIHdpZHRoOiByZW0oMyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYWN0aXZlICYge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS10b2dnbGVyLWNyb3NzLXRoaW4ge1xuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgaGVpZ2h0OiByZW0oMik7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB3aWR0aDogcmVtKDIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tY2FydC1wbHVzIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB3aWR0aDogcmVtKDI2KTtcbiAgICAgICAgaGVpZ2h0OiByZW0oMjMpO1xuICAgICAgICBtYXJnaW46IHJlbSgtNikgcmVtKDEyKSByZW0oLTIpIDA7XG4gICAgfVxuXG4gICAgJi0tdG9nZ2xlci1jcm9zcy1saW5rIHtcbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1saW5rIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktMjtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiByZW0oNik7XG4gICAgfVxuXG4gICAgJi0tc2hpcG1lbnQge1xuICAgICAgICB3aWR0aDogcmVtKDgzKTtcbiAgICB9XG5cbiAgICAmLS10b2YtbG9nbyxcbiAgICAmLS10b2YtZXhwLWxvZ28ge1xuICAgICAgICB3aWR0aDogcmVtKDk2KTtcbiAgICAgICAgbWFyZ2luLXRvcDogcmVtKC0yKTtcbiAgICB9XG5cbiAgICAmLS11cHMtbG9nbyxcbiAgICAmLS11cHNhbS1sb2dvIHtcbiAgICAgICAgd2lkdGg6IHJlbSgzMik7XG4gICAgICAgIGhlaWdodDogcmVtKDMyKTtcbiAgICB9XG5cbiAgICAmLS1kaGwtbG9nbyB7XG4gICAgICAgIHdpZHRoOiByZW0oNzMpO1xuICAgIH1cblxuICAgICYtLWZlZGV4LWxvZ28ge1xuICAgICAgICB3aWR0aDogcmVtKDUyKTtcbiAgICAgICAgbWFyZ2luLXRvcDogcmVtKC0yKTtcbiAgICB9XG5cbiAgICAmLS1pbnZvaWNlLWxvZ28ge1xuICAgICAgICB3aWR0aDogcmVtKDUyKTtcbiAgICAgICAgaGVpZ2h0OiByZW0oMjApO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgIHdpZHRoOiByZW0oODMpO1xuICAgICAgICAgICAgaGVpZ2h0OiByZW0oMjgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0taW52b2ljZS1sb2dvLXNtYWxsIHtcbiAgICAgICAgd2lkdGg6IHJlbSg1NSk7XG4gICAgICAgIGhlaWdodDogcmVtKDIyKTtcbiAgICB9XG5cbiAgICAmLS1wYXltZW50LWxvZ28ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogcmVtKDI3KTtcbiAgICAgICAgcmlnaHQ6IHJlbSgyMCk7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgdG9wOiByZW0oMjcpO1xuICAgICAgICAgICAgcmlnaHQ6IHJlbSgzMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1zdW1tYXJ5LXNoaXBwaW5nIHtcbiAgICAgICAgd2lkdGg6IHJlbSg1Myk7XG4gICAgfVxuXG4gICAgJi0tb3ZlcnZpZXcge1xuICAgICAgICB3aWR0aDogcmVtKDE3KTtcbiAgICAgICAgaGVpZ2h0OiByZW0oMTYpO1xuICAgIH1cblxuICAgICYtLXVzZXJzIHtcbiAgICAgICAgd2lkdGg6IHJlbSgyOSk7XG4gICAgICAgIGhlaWdodDogcmVtKDE5KTtcbiAgICB9XG5cbiAgICAmLS1idXNpbmVzcy11bml0IHtcbiAgICAgICAgd2lkdGg6IHJlbSgyMik7XG4gICAgICAgIGhlaWdodDogcmVtKDIyKTtcbiAgICB9XG5cbiAgICAmLS1yb2xlIHtcbiAgICAgICAgaGVpZ2h0OiByZW0oMTQpO1xuICAgIH1cblxuICAgICYtLXBsdXMtc21hbGwge1xuICAgICAgICB3aWR0aDogcmVtKDEwKTtcbiAgICAgICAgaGVpZ2h0OiByZW0oMTApO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRvcDogcmVtKC0xKTtcbiAgICB9XG5cbiAgICAmLS1zaGFyZSB7XG4gICAgICAgIHdpZHRoOiByZW0oMjApO1xuICAgIH1cblxuICAgICYtLWFkZC10by1saXN0IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0b3A6IHJlbSgxKTtcbiAgICAgICAgd2lkdGg6IHJlbSgyNik7XG4gICAgICAgIGhlaWdodDogcmVtKDI2KTtcbiAgICB9XG5cbiAgICAmLS1zdWNjZXNzIHtcbiAgICAgICAgd2lkdGg6IHJlbSgxMjApO1xuICAgICAgICBoZWlnaHQ6IHJlbSgxMjApO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oLTIyKTtcbiAgICB9XG5cbiAgICAmLS1mb290ZXIge1xuICAgICAgICBoZWlnaHQ6IHJlbSgyOCk7XG4gICAgICAgIHdpZHRoOiByZW0oOTMpO1xuICAgIH1cblxuICAgICYtLWludm9pY2UtbG9nby1mb290ZXIge1xuICAgICAgICB3aWR0aDogcmVtKDczKTtcbiAgICB9XG5cbiAgICAmLS1wYXktcGFsLWxvZ28tZm9vdGVyIHtcbiAgICAgICAgd2lkdGg6IHJlbSg2NCk7XG4gICAgfVxuXG4gICAgJi0ta2xhcm5hLWxvZ28tZm9vdGVyIHtcbiAgICAgICAgd2lkdGg6IHJlbSg2OCk7XG4gICAgfVxuXG4gICAgJi0tZGhsLWxvZ28tZm9vdGVyIHtcbiAgICAgICAgd2lkdGg6IHJlbSg3Nik7XG4gICAgfVxuXG4gICAgJi0tY29weXJpZ2h0IHtcbiAgICAgICAgd2lkdGg6IHJlbSgxMDYpO1xuICAgICAgICBoZWlnaHQ6IHJlbSg0OCk7XG4gICAgfVxuXG4gICAgJi0tcmVzZXQge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IHJlbSg4KTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNTtcbiAgICB9XG5cbiAgICAmLS1jaGV2cm9uIHtcbiAgICAgICAgd2lkdGg6IHJlbSgxMCk7XG4gICAgICAgIGhlaWdodDogcmVtKDEwKTtcbiAgICB9XG5cbiAgICAmLS1jcmVhdGUtbGlzdCB7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gICAgICAgIGhlaWdodDogcmVtKDE4KTtcbiAgICAgICAgd2lkdGg6IHJlbSgxOCk7XG4gICAgfVxuXG4gICAgJi0tY3JlYXRlLW5ldy1jYXJ0IHtcbiAgICAgICAgd2lkdGg6IHJlbSgyNCk7XG4gICAgICAgIGhlaWdodDogcmVtKDE4KTtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICB9XG5cbiAgICAmLS10cm9sbGV5IHtcbiAgICAgICAgd2lkdGg6IHJlbSgyMCk7XG4gICAgfVxuXG4gICAgJi0tdGl0bGUge1xuICAgICAgICB3aWR0aDogcmVtKDM1KTtcbiAgICAgICAgaGVpZ2h0OiByZW0oMjYpO1xuICAgIH1cblxuICAgICYtLXNtLWxnLXJlZ3VsYXIge1xuICAgICAgICB3aWR0aDogcmVtKDE2KTtcbiAgICAgICAgaGVpZ2h0OiByZW0oMTYpO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgIHdpZHRoOiByZW0oMjApO1xuICAgICAgICAgICAgaGVpZ2h0OiByZW0oMjApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tc20tbGctYmlnZ2VyIHtcbiAgICAgICAgd2lkdGg6IHJlbSgxNik7XG4gICAgICAgIGhlaWdodDogcmVtKDE2KTtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICB3aWR0aDogcmVtKDI0KTtcbiAgICAgICAgICAgIGhlaWdodDogcmVtKDI0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLWJyb3dzZS1maWxlIHtcbiAgICAgICAgd2lkdGg6IHJlbSgyOCk7XG4gICAgICAgIGhlaWdodDogcmVtKDI4KTtcbiAgICB9XG5cbiAgICAmLS1kb3dubG9hZC1maWxlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHdpZHRoOiByZW0oMzApO1xuICAgICAgICBoZWlnaHQ6IHJlbSgzMCk7XG4gICAgfVxuXG4gICAgJi0tcmVtb3ZlLWZpbGUge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICBtYXJnaW46IHJlbSgtMikgMCAwIHJlbSg1KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLWNsb2NrIHtcbiAgICAgICAgd2lkdGg6IHJlbSgxMik7XG4gICAgICAgIGhlaWdodDogcmVtKDEyKTtcbiAgICB9XG59XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktaW5wdXQge1xuICAgICYge1xuICAgICAgICBib3JkZXI6IHJlbSgxKSBzb2xpZCAkc2V0dGluZy1jb2xvci1ncmF5LTk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRzZXR0aW5nLWJvcmRlci1yYWRpdXM7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTU7XG4gICAgICAgIGZvbnQ6IGZ3KHJlZ3VsYXIpIHJlbSgxNSkvcmVtKDE5KSAkc2V0dGluZy1mb250LWZhbWlseTtcbiAgICAgICAgcGFkZGluZzogcmVtKDE0KSByZW0oMjApIHJlbSgxMyk7XG4gICAgfVxuXG4gICAgJlt0eXBlPW51bWJlcl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG4gICAgJlt0eXBlPW51bWJlcl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgfVxuXG4gICAgJlt0eXBlPW51bWJlcl0ge1xuICAgICAgICAtbW96LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbiAgICB9XG5cbiAgICAmLS1zbWFsbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDE0KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgxOCk7XG4gICAgICAgIHBhZGRpbmc6IHJlbSgxMCkgcmVtKDE2KTtcbiAgICB9XG5cbiAgICAmLS1tZWFzdXJlbWVudC11bml0IHtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHB4O1xuICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICY6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG4gICAgICAgICY6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLWZpbHRlci1yYW5nZSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhtZWRpdW0pO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS00O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiByZW0oNDApO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IHJlbSg4KTtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJG1kKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IHJlbSgxNik7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogbWFwX2dldCgkc2V0dGluZy1mb250LXNpemUsIHRpbnkpO1xuICAgICAgICBmb250LXdlaWdodDogbWFwX2dldCgkc2V0dGluZy1mb250LXdlaWdodCwgYm9sZCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNHJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNTtcblxuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS10aXRsZSB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJyb3dzZS1maWxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IHJlbSgxMjApO1xuICAgICAgICAgICAgcGFkZGluZzogcmVtKDEwKTtcbiAgICAgICAgICAgIGJvcmRlcjogcmVtKDIpIGRhc2hlZCAkc2V0dGluZy1jb2xvci1ncmF5LTI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiByZW0oMik7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTM7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogaW5pdGlhbDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhyZWd1bGFyKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnJvd3NlLWZpbGUtY3Vyc29yLWRlZmF1bHQge1xuICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWxhYmVsKCk7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktbGluayB7XG5cbiAgICAmLS1pY29uIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktMztcbiAgICAgICAgZm9udC1zaXplOiByZW0oMTMpO1xuICAgICAgICBmb250LXdlaWdodDogZncobWVkaXVtKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgxNik7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCR4bCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNDtcblxuICAgICAgICAgICAgLmljb24ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1mb290ZXIge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS04O1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1jaGVja291dCB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDEzKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICB9XG5cbiAgICAmLS1zb2NpYWwge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS0zO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLXByaXZhY3kge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tYWN0aW9uIHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktMjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1lcnJvci1ibG9jayB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICBmb250OiBmdyhyZWd1bGFyKSByZW0oMTUpL3JlbSgzMCkgJHNldHRpbmctZm9udC1mYW1pbHk7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTI7XG4gICAgfVxuXG4gICAgJi0tY29tcGFueS11c2VyIHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktMztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJHhsKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS01O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tc2Vjb25kYXJ5IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktMztcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJHhsKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS00O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tYWx0ZXJuYXRpdmUge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCR4bCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6Zm9jdXMsXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktMztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLWFkZGl0aW9uYWwge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJHhsKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS00O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tdG8tYnV0dG9uIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IHJlbSgxMSk7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDE0KTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRzZXR0aW5nLWJvcmRlci1yYWRpdXM7XG4gICAgICAgIGJvcmRlcjogcmVtKDEpIHNvbGlkICRzZXR0aW5nLWNvbG9yLWdyYXktMTtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgxMyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS11c2VyLWFjY291bnQge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS0zO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1saXN0IHtcbiAgICAmLS1mb290ZXIge1xuICAgICAgICBwYWRkaW5nOiAwIHJlbSgxMCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgyNik7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRtZCkge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1jaGVja291dCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAgICAgJiA+IC5saXN0X19pdGVtIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiByZW0oMTkpO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiByZW0oMTkpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJG1kKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHJlbSgxMCk7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiByZW0oMTApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tY2hlY2tib3gge1xuICAgICAgICBtYXJnaW46IHJlbSg4KSAwO1xuICAgIH1cblxuICAgICZfX2l0ZW0ge1xuICAgICAgICBmb250LXNpemU6IHJlbSgxNSk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMjEpO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogcmVtKDAuMik7XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNoZWNrYm94IHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSg4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLWNvbXBhbnktdXNlciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBmb250LXNpemU6IHJlbSgxNSk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhyZWd1bGFyKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuOTM7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiByZW0oMC4yKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMCAwICRzZXR0aW5nLWJvcmRlci1yYWRpdXMgJHNldHRpbmctYm9yZGVyLXJhZGl1cztcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMThweCAxOHB4IDAgJHNldHRpbmctY29sb3ItYWxwaGEtMiwgMCAzcHggM3B4IDAgJHNldHRpbmctY29sb3ItYWxwaGEtMjtcbiAgICAgICAgcGFkZGluZzogcmVtKDIxKSByZW0oMzgpIHJlbSgyMSkgcmVtKDI5KTtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWNvbXBhbnktbWVudTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSk7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCR4eHhsKSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLWFsZXJ0IHtcbiAgICAgICAgYSB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGltcG9ydCAnLi4vY2hlY2tib3gvY2hlY2tib3gnO1xuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG5cbiAgICAgICAgJi0tbW9iaWxlLXNtYWxsIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgIHdpZHRoOiByZW0oMjApO1xuICAgICAgICAgICAgICAgIGhlaWdodDogcmVtKDIwKTtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtKDIwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItd2lkdGg6IHJlbSgyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dDpjaGVja2VkIH4ge1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCByZW0oMykgJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktcmFkaW87XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktc2VsZWN0KCkge1xuICAgICYtLXF1aWNrLW9yZGVyLXBhZ2Uge1xuICAgICAgICBwYWRkaW5nOiByZW0oMTUpIHJlbSgxMCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNztcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJHNldHRpbmctYm9yZGVyLXJhZGl1cztcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktMztcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NhcmV0IHtcbiAgICAgICAgcmlnaHQ6IHJlbSgxNSk7XG4gICAgfVxuXG4gICAgJl9fdmVydGljYWwtY2VudGVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTc7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXBfZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgdGlueSk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogZncoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS01O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbSgxNikgcmVtKDE1KTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IHJlbSgzMik7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogcmVtKDMyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwX2dldCgkc2V0dGluZy1mb250LXNpemUsIHNtYWxsKTtcblxuICAgICAgICAgICAgdHI6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IHJlbSgxKSBzb2xpZCAkc2V0dGluZy1jb2xvci1ncmF5LTY7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoIHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogZncobWVkaXVtKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHN0cm9uZyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogZncobWVkaXVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1pbmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWdyaWQge1xuXG4gICAgICAgICAgICB0aGVhZCB7XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogcmVtKDE2KSByZW0oMTUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVzcG9uc2l2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1tYXgoJGxnIC0gMSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAgICAgdGhlYWQsXG4gICAgICAgICAgICAgICAgdGJvZHksXG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhlYWQgdHIsXG4gICAgICAgICAgICAgICAgdGhlYWQgdGgge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRyIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6ICRzZXR0aW5nLWdyaWQtc3BhY2U7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAkc2V0dGluZy1ncmlkLXNwYWNlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRib2R5IHRyOm5vdCguaXMtaGlkZGVuLXNtLW1kKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRkOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogZncoYm9sZCk7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbSgxMCk7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5yb3cge1xuICAgICAgICAgICAgICAgICAgICAmLS1vcmRlci1kZXRhaWxzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IHJlbSgyMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6IHJlbSgxKSBzb2xpZCAkc2V0dGluZy1jb2xvci1ncmF5LTE7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkc2V0dGluZy1ib3JkZXItcmFkaXVzO1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDE2KTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAudHJhbnNmb3JtLXRhYmxlLWhlYWRlcixcbiAgICAgICAgICAgICAgICAudHJhbnNmb3JtLXRhYmxlLWhlYWRlcl9fY2VsbCB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAudHJhbnNmb3JtLXRhYmxlLWhlYWRlcl9fY2VsbCB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE4KTtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KG1lZGl1bSk7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiByZW0oMTYpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC50cmFuc2Zvcm0tY2VsbCB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTc7XG5cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtY29udGVudCkgJzonO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICYtLW5vLWxhYmVsOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS10YWJsZSgpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBoZWxwZXItaW1wb3J0KGF0b20sIHRleHRhcmVhKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS10ZXh0YXJlYSgpO1xufVxuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiByZW0oMTYwKTtcbiAgICAgICAgbWFyZ2luOiByZW0oOCk7XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IHJlbSg1Mik7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHJlbSg0Mik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1tZWRpdW0ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlc2V0LWluZGVudHMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2F0ZWdvcnktbGlzdCB7XG4gICAgICAgICAgICBoZWlnaHQ6IHJlbSgzMTMpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhdGFsb2cge1xuICAgICAgICAgICAgaGVpZ2h0OiByZW0oMTgwKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYXRlZ29yeSB7XG4gICAgICAgICAgICBoZWlnaHQ6IHJlbSgxMjQpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3BwaW5nLWxpc3Qge1xuICAgICAgICAgICAgaGVpZ2h0OiByZW0oNzUpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhcnQge1xuICAgICAgICAgICAgaGVpZ2h0OiByZW0oNzUpO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiByZW0oMTYwKTtcbiAgICAgICAgICAgICAgICBtYXJnaW46IHJlbSg4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN1Z2dlc3Rpb24tcHJvZHVjdCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3VtbWFyeSB7XG4gICAgICAgICAgICBoZWlnaHQ6IHJlbSg3NSk7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHJlbSgxMDApO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogcmVtKDQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1tYXJnaW4tcHJvZHVjdCB7XG4gICAgICAgICAgICBtYXJnaW46IHJlbSgwKSByZW0oMCkgcmVtKDIwKSByZW0oMCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktdGh1bWJuYWlsO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXdyYXAge1xuICAgICAgICAgICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZvb3RlciB7XG4gICAgICAgICAgICBmb250OiBmdyhtZWRpdW0pIHJlbSgxNSkvcmVtKDIxKSAkc2V0dGluZy1mb250LWZhbWlseTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgyMSk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS04O1xuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IHJlbSgwLjIpO1xuXG4gICAgICAgICAgICAmLXNtLXVwLWhpZGRlbntcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1tYXgoJHNtLW1heCl7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLXNtLWRvd24tc2hvd3tcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJG1kLW1pbil7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1tYXgoJHNtLW1heCl7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogcmVtKDIwKSByZW0oMCk7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMjApO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMjMpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhyZWd1bGFyKTtcblxuICAgICAgICAgICAgICAgICY6YmVmb3Jle1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnXFxmMDY3JztcbiAgICAgICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdGb250IEF3ZXNvbWUgNSBQcm8nO1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogcmVtKDEwKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLmlzLWFjdGl2ZXtcblxuICAgICAgICAgICAgICAgICAgICAmOmJlZm9yZXtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICdcXGYwNjgnO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdGb250IEF3ZXNvbWUgNSBQcm8nO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3Vic2NyaXB0aW9uLWluZm8ge1xuICAgICAgICAgICAgZm9udDogZncobWVkaXVtKSByZW0oMzQpL3JlbSg0MykgJHNldHRpbmctZm9udC1mYW1pbHk7XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogcmVtKDAuMyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMTcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2hlY2tvdXQge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMjIpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KGJvbGQpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDEwKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDI4KTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMjUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2Vjb25kIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE4KTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgxNCk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgyNCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRleCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogcmVtKDQpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiByZW0oOCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdWIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktMztcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgxMik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvci1wYWdlIHtcbiAgICAgICAgICAgIGZvbnQ6IGZ3KGJvbGQpIHJlbSgzMikvcmVtKDQxKSAkc2V0dGluZy1mb250LWZhbWlseTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSg3KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXByb2R1Y3QtcmV2aWV3IHtcbiAgICAgICAgICAgIG1hcmdpbjogcmVtKDM2KSAwIHJlbSgyNCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wcm9kdWN0LXNsaWRlciB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgyOCk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMTYpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDMzKTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgzMik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS10b3AtbWFyZ2luIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSg2MSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0oODApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJHhsKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtKDExMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS10b3AtbWFyZ2luLXNtYWxsIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSg1NSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saWdodCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wcm9kdWN0LXNldC1kZXRhaWxzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDIyKTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhtZWRpdW0pO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0oNTApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tbW9iaWxlLXRvZ2dsZXItc2VjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMjQpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KG1lZGl1bSk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWF4KCRsZyAtIDEpIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgxNyk7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiByZW0oMjkpO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiByZW0oMTApO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IHJlbSgyKTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItZ3JheS01O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg5MGRlZyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJi5hY3RpdmU6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTU7XG4gICAgICAgICAgICBmb250LXdlaWdodDogZncobWVkaXVtKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiByZW0oMjApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSg1Mik7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHBoYS01O1xuICAgICAgICAgICAgbWFyZ2luOiAwIHJlbSgtMTUpIHJlbSg4KTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE2KTtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCByZW0oOCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZXZpZXctc3VidGl0bGUge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDIwKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE4KTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhtZWRpdW0pO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDI0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWltYWdle1xuICAgICAgICAgICAgbWF4LXdpZHRoOiByZW0oMTIwKTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IHJlbSgyMik7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMTcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLXRpdGxlO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAuYm9keS1vdmVybGF5LS1uby1zZWFyY2ggJiB7XG4gICAgICAgICAgICB6LWluZGV4OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbSg4KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtIHZpc2liaWxpdHkgb3BhY2l0eSk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCR0YWJsZXRMYW5kc2NhcGUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuYm9keS1vdmVybGF5LS1uby1zZWFyY2ggJiB7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX190b3Age1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCR0YWJsZXRMYW5kc2NhcGUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1ncmF5LTExO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnLW1heCAtIDEpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2dvIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAzMy4zMzMzMyU7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDMzLjMzMzMzJTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRtZC1taW4pIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IHVuc2V0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJHhsKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogcmVtKDYzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX21haW4ge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiByZW0oMTAwKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWF4KCRsZy1tYXgpIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiByZW0oNzApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jaGVja291dCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiByZW0oMTQpO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oMTQpO1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDA7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiByZW0oMjApO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDIwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gge1xuICAgICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkeGwpIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IHJlbSg0MjMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9naW4ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiByZW0oLTUpO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHJlbSgxNSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbWQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEuODc1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJHhsKSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItZ3JheS0xMTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAwIHJlbSg2KSByZW0oOCkgMCAkc2V0dGluZy1jb2xvci1hbHBoYS0xO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLW1vYmlsZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS0xO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCR0YWJsZXRMYW5kc2NhcGUpIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICA+IC5ncmlkIHtcbiAgICAgICAgICAgICAgICAgICAgPiBkaXYge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IHJlbSg0MCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDE1cHg7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC5mYXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgcmVtKDUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAuZXh0ZXJuYWwtbGluayxcbiAgICAgICAgICAgICAgICAgICAgICAgIC5jbGlwYm9hcmQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICYtdGV4dCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiByZW0oNCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS04O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS04O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luOiAwIHJlbSgtMTApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAgICAgLmNvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJHhsKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiByZW0oNyk7XG4gICAgICAgICAgICAgICAgbGVmdDogcmVtKDE1KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi1pdGVtIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIHJlbSg1KTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJG1kKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgcmVtKDEwKTtcbiAgICAgICAgICAgICAgICB9XG5cblxuICAgICAgICAgICAgICAgICYtLXNlYXJjaCxcbiAgICAgICAgICAgICAgICAmLS1tZW51IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCR0YWJsZXRMYW5kc2NhcGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAuZmFsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTg7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgyOCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX191c2VyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogcmVtKDIwKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX191c2VyLW5hdiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRtZC1taW4pIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJHRhYmxldExhbmRzY2FwZSkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiByZW0oMjApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJHhsLW1pbikge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgMCAwIHJlbSgyMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktMztcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDEyKTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMTMpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KG1lZGl1bSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yIGJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogcmVtKDEwKSByZW0oMzApO1xuICAgICAgICAgICAgICAgIGJvcmRlcjogcmVtKDEpIHNvbGlkICRzZXR0aW5nLWNvbG9yLWdyYXktMjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkc2V0dGluZy1ib3JkZXItcmFkaXVzO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE0KTtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtKDE4KTtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVja291dC1zZWN1cmUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktMztcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDEwKTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMTIpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KG1lZGl1bSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE0KTtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtKDE1KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi10ZXh0IHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogcmVtKDkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNDtcblxuICAgICAgICAgICAgJi13aGl0ZSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWhlYWRlcigpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkeGwpIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIDM1MHB4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbi1pdGVtIHtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogc29saWQgMXB4ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDQ7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtKDMwKTtcblxuICAgICAgICAgICAgJjpob3ZlciAubGlzdC0tY29tcGFueS11c2VyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS10ZWwge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE1KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogZncobm9ybWFsKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS04O1xuXG4gICAgICAgICAgICAgICAgLnNlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMDtcblxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJHRhYmxldExhbmRzY2FwZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdvcmtpbmctaG91cnMge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbSg4KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmZhLXBob25lIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgtMSkgcm90YXRlKC0xNWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5sYW5ndWFnZS1zd2l0Y2hlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29tcGFueSB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgxMSk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogZncoYm9sZCk7XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogcmVtKDAuNik7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtKDQwKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDMwcHggMCAxOHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IHJlbSgxNTApO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCR4bCkge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogcmVtKDM2NSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5pcy10b3VjaCAmIHtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1ncmF5LTQsIDI1KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbm8tbWVudSB7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29tcGFueS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA3cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDRweDtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtNXB4IDAgNXB4O1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiBjYWxjKDUwJSAtIDJweCk7XG4gICAgICAgICAgICByaWdodDogMTdweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBoZWxwZXItaW1wb3J0KG9yZ2FuaXNtLCBub3RpZmljYXRpb24tYXJlYSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWE7XG59XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IHJlbSgyMikgMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW0oNDgpIDA7XG4gICAgICAgIH1cblxuICAgICAgQG1lZGlhIHByaW50IHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgIH1cblxuICAgICAgJl9fdGl0bGUge1xuICAgICAgICBmb250LXdlaWdodDogbWFwLWdldCgkc2V0dGluZy1mb250LXdlaWdodCwgbWVkaXVtKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDI0KTtcbiAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgbm93cmFwO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAgICAgICAgICZfX2lubmVyIHtcbiAgICAgICAgICAgICAgICBmbGV4OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGFzdCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDcwKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oOTYpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2Vjb25kYXJ5IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbSgzMikgMCByZW0oMTYpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IHJlbSg1MCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkeGwpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogcmVtKDcwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJnLWRhcmsge1xuICAgICAgICAgICAgcGFkZGluZzogcmVtKDIyKSAwIHJlbSgxOSk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTc7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiByZW0oNTApIDAgcmVtKDgwKTtcblxuICAgICAgICAgICAgICAgIC5wcm9kdWN0LWNhcmRfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnByb2R1Y3QtY2FyZCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IHJlbSgxNSk7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oMzApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnByb2R1Y3QtY2FyZF9faW1hZ2Utd3JhcCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wcm9kdWN0LWNhcmRfX292ZXJsYXk6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNldHRpbmctZ3JpZC1zcGFjZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzZXR0aW5nLWdyaWQtc3BhY2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uby1tb2JpbGUtYm90dG9tLWluZGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oMTYpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KG1lZGl1bSk7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgyOCk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMTYpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMzApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJHhsKSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMzIpO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgyNCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNlY29uZGFyeSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNDtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW1vYmlsZS1jZW50ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItdGl0bGUsXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktMjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMjYpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDQwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi10aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcF9nZXQoJHNldHRpbmctZm9udC1zaXplLCBkZWZhdWx0KTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwX2dldCgkc2V0dGluZy1mb250LXNpemUsIGJpZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE1KTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjYxO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiByZW0oOTcwKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwX2dldCgkc2V0dGluZy1mb250LXNpemUsIGJpZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktc2VjdGlvbigpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogcmVtKDM3NSk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJHhsKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3ZlcmxheSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSB0b3ApO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAtMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgcGFkZGluZzogcmVtKDIwKSAwO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRtZCkge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgbGVmdCk7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IC0gJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faG9sZGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBwYWRkaW5nOiAwIHJlbSgxMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiByZW0oMTApO1xuICAgICAgICAgICAgdG9wOiByZW0oMTgpO1xuICAgICAgICAgICAgd2lkdGg6IHJlbSg0MCk7XG4gICAgICAgICAgICBoZWlnaHQ6IHJlbSgzMCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcGFkZGluZzogMCByZW0oMTMpIHJlbSgxMCkgcmVtKDU0KTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCR0YWJsZXRMYW5kc2NhcGUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdXNlci1saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW0oMTIpIDA7XG4gICAgICAgICAgICBmb250LXdlaWdodDogZncoYm9sZCk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtKDE2KTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDEwKTtcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiByZW0oMC42KTtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cbiAgICAgICAgICAgICYtaWNvbiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiByZW0oMTApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDE1KTtcbiAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmZvIHtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IHJlbSgyNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogcmVtKDE2KSByZW0oMTUpIHJlbSgxNikgcmVtKDY0KTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHJlbSgyKTtcbiAgICAgICAgICAgIGJvcmRlcjogcmVtKDEpIHNvbGlkICRzZXR0aW5nLWNvbG9yLWdyYXktMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTI7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICYtaWNvbiB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IHJlbSgyMCk7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLXRleHQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE0KTtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS4yO1xuXG4gICAgICAgICAgICAgICAgJi0td2VpZ2h0IHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KG1lZGl1bSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19vdmVybGF5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1zaWRlLWRyYXdlcigpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW4tdG9wOiByZW0oMTYpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMTYpO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEgcHJpbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZpcnN0IHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtKDQ4KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSgxNik7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oOCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRtZCkge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogcmVtKDcwMCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkeGwpIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IHJlbSg1MDApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG5cbiAgICAgICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKDQpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KDQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDIyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRtZCkge1xuICAgICAgICAgICAgICAgIGZsZXg6IG5vbmU7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0oOCk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7XG4gICAgICAgICAgICBmbGV4OiBub25lO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJG1kKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogcmVtKDgpO1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiByZW0oMTMpO1xuICAgICAgICAgICAgaGVpZ2h0OiByZW0oMTMpO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiByZW0oMTApO1xuICAgICAgICAgICAgZmxleDogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1hY3Rpb24tYmFyKCk7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGhlbHBlci1pbXBvcnQobW9sZWN1bGUsIGFqYXgtYWRkLXRvLWNhcnQpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoKTtcbn1cbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1hamF4LWxvYWRlciB7XG4gICAgJiB7IGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFscGhhLTQ7IH1cbn1cbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgaGVscGVyLWltcG9ydChtb2xlY3VsZSwgYWxlcnQpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWFsZXJ0O1xufVxuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZzogcmVtKDE1KSByZW0oMzYpIHJlbSgxNSkgcmVtKDE4KTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE1KTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhyZWd1bGFyKTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRzZXR0aW5nLWJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDE4cHggMThweCAwICRzZXR0aW5nLWNvbG9yLXNoYWRvdy0xLCAwIDNweCAzcHggMCAkc2V0dGluZy1jb2xvci1zaGFkb3ctMTtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkc2V0dGluZy1ib3JkZXItcmFkaXVzICRzZXR0aW5nLWJvcmRlci1yYWRpdXMgMCAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbSgxMCkgcmVtKDE4KTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE0KTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMCAwICRzZXR0aW5nLWJvcmRlci1yYWRpdXMgJHNldHRpbmctYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMThweCAxOHB4IDAgJHNldHRpbmctY29sb3Itc2hhZG93LTEsIDAgM3B4IDNweCAwICRzZXR0aW5nLWNvbG9yLXNoYWRvdy0xO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xlYW4tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogcmVtKDEyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW92ZXJsYXAge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktY3VzdG9tLXNlbGVjdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBmb250OiBmdyg1MDApIHJlbSgxMykvcmVtKDE2KSAkc2V0dGluZy1mb250LWZhbWlseTtcblxuICAgICAgICAmLS1wcm9ncmVzcy1zdGVwLFxuICAgICAgICAmLS1wcm9ncmVzcy1jb21wbGV0ZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgxMCk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgbWFyZ2luOiAwIHJlbSgxNSk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbWQpIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgxOCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgcmVtKDI5KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgdG9wOiByZW0oNik7XG4gICAgICAgICAgICAgICAgd2lkdGg6IHJlbSgzNik7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHJlbSgtMyk7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiByZW0oMSk7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1ncmF5LTIsIDAuOCk7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJG1kKSB7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogcmVtKDIpO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IHJlbSgxMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJiN7JG5hbWV9LS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IHJlbSgxKSBzb2xpZCAkc2V0dGluZy1jb2xvci1ncmF5LTQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcHJvZ3Jlc3MtY29tcGxldGUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKTo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19saW5rIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHJlbSg0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19udW1iZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2xpbmsge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHJlbSg0KTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogcmVtKDQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktMztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogZncobWVkaXVtKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IHJlbSgxKSBzb2xpZCAkc2V0dGluZy1jb2xvci1ncmF5LTQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS00O1xuICAgICAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayxcbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTM7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS00O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2tlZCB7XG4gICAgICAgICAgICB3aWR0aDogcmVtKDEzKTtcbiAgICAgICAgICAgIGhlaWdodDogcmVtKDEzKTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMTEpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgyKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiByZW0oMTgpO1xuICAgICAgICAgICAgICAgIGhlaWdodDogcmVtKDE4KTtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtKDE1KTtcbiAgICAgICAgICAgICAgICBtYXJnaW46IHJlbSgzKSAwIHJlbSg0KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgcmVtKDQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbnVtYmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDIpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19ob2xkZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBoZWxwZXItaW1wb3J0KG1vbGVjdWxlLCBjYXJkKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkO1xufVxuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBoZWxwZXItaW1wb3J0KG1vbGVjdWxlLCBjYXJ0LWNvdW50ZXIpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcnQtY291bnRlcjtcbn1cbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IHJlbSgxNik7XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBoZWlnaHQ6IHJlbSgzOCk7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiByZW0oNCk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDEyKTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhib2xkKTtcbiAgICAgICAgICAgIG1hcmdpbjogcmVtKDYpIDAgMCByZW0oMSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IHJlbSgzKSAwIDAgcmVtKDYpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGhlbHBlci1pbXBvcnQobW9sZWN1bGUsIGVuZGxlc3Mtc2Nyb2xsKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1lbmRsZXNzLXNjcm9sbDtcbn1cbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksICRzZXR0aW5nLWVmZmVjdC1kZWZhdWx0LWR1cmF0aW9uICogMik7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICAgICAgZm9udC1zaXplOiAkc2V0dGluZy1mb250LXNpemUtYmFzZSArIDE7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkc2V0dGluZy1mb250LWZhbWlseTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXRpYy1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIDFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5mbyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0sICZbZGF0YS1hY3Rpb249XCIjeyRhY3Rpb259XCJdIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGIyYi1zaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWZvcm0oJG5hbWUpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICAmICsgJiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zZWN0aW9uIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0oNDgpO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0oMTYpO1xuICAgICAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBmbGV4OiBub25lO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW46IHJlbSgxMCkgMCAwIDA7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgcmVtKDE2KSAwIDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWV4cGFuZC1zbS1tZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRtZCkge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiByZW0oMTApIHJlbSgxNikgMCAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXByaW1hcnkge1xuICAgICAgICAgICAgICAgIG9yZGVyOiAtMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc20tbGctZmlyc3Qge1xuICAgICAgICAgICAgICAgIG9yZGVyOiAtMTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICAgICAgb3JkZXI6IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zbS1tZC1maXJzdCB7XG4gICAgICAgICAgICAgICAgb3JkZXI6IC0xO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRtZCkge1xuICAgICAgICAgICAgICAgICAgICBvcmRlcjogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogcmVtKDEwKSBhdXRvIDA7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTMpO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgcmVtKDE2KSAwIDA7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE2KTtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlLWRlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTI7XG4gICAgICAgICAgICBtYXJnaW46IHJlbSgtOCkgMCByZW0oMTYpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFycm93IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250YWluZXIge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRtZCkge1xuICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IHJlbSg3MDApO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkeGwpIHtcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiByZW0oNTAwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdWJzY3JpcHRpb24ge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IHJlbSgzMik7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbWQpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmZvcm1fX2NvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuZm9ybV9fZmllbGRzLFxuICAgICAgICAgICAgLmZvcm1fX2FjdGlvbnMsXG4gICAgICAgICAgICAuZm9ybV9fYWN0aW9uIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5mb3JtX19maWVsZCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmZvcm1fX2FjdGlvbnMge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5sYWJlbCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmlucHV0IHtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgJHNldHRpbmctY29sb3ItZ3JheS00O1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE2KTtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtKDIwKTtcbiAgICAgICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogcmVtKDAuMik7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiByZW0oMTApIHJlbSgzNikgcmVtKDEwKSAwO1xuXG4gICAgICAgICAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS00O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTgpO1xuICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtKDIzKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IHJlbSgwLjI3KTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogcmVtKDEzKSByZW0oNDYpIHJlbSgxNikgMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5idXR0b24ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTQ7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogcmVtKDQyKTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiByZW0oMTApO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oMTApO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktMztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IHJlbSg1NCk7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbSgyMik7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oMTApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmljb24ge1xuICAgICAgICAgICAgICAgIHdpZHRoOiByZW0oMTIpO1xuICAgICAgICAgICAgICAgIGhlaWdodDogcmVtKDEyKTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHJlbSgxNik7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogcmVtKDE2KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1icm93c2UtZmlsZSB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fZmllbGQ6bm90KDpmaXJzdC1vZi10eXBlKSxcbiAgICAgICAgICAgICN7JG5hbWV9X19hY3Rpb25zLFxuICAgICAgICAgICAgLmlucHV0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1vcmRlciB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fZmllbGQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fYWN0aW9ucyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnRleHRhcmVhIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiByZW0oMTE5KTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiByZW0oMTcpIHJlbSgyMCkgcmVtKDE4KTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgxMyk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KHJlZ3VsYXIpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTM7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJHNldHRpbmctYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCByZW0oMTApIHJlbSgxMCkgMCAkc2V0dGluZy1jb2xvci1zaGFkb3ctMSwgMCByZW0oMykgcmVtKDMpIDAgJHNldHRpbmctY29sb3Itc2hhZG93LTE7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IHJlbSg4Nik7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IHJlbSgxNSkgcmVtKDIwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jaGVja291dCB7XG4gICAgICAgICAgICAuc2VsZWN0Mi1jb250YWluZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICAgICAgICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJG1kKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgICAgIHRhYmxlLWxheW91dDogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hdmFpbGFiaWxpdHktbm90aWZpY2F0aW9uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbWQpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fZmllbGRzLFxuICAgICAgICAgICAgI3skbmFtZX1fX2FjdGlvbnMsXG4gICAgICAgICAgICAjeyRuYW1lfV9fYWN0aW9uIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19maWVsZCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2FjdGlvbnMge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5pbnB1dCB7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgxKTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiByZW0oOSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5idXR0b24ge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IHJlbSgzOCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXZpZGVyIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgyNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGluY2x1ZGUgYjJiLXNob3AtdWktZm9ybSgpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBoZWxwZXItaW1wb3J0KG1vbGVjdWxlLCBmb3JtYXR0ZWQtbnVtYmVyLWlucHV0KSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0O1xufVxuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBoZWxwZXItaW1wb3J0KG1vbGVjdWxlLCBpbWFnZS1jYXJvdXNlbCkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCcuaW1hZ2UtY2Fyb3VzZWwnKTtcbn1cbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgICYuc2xpY2stY2Fyb3VzZWwtLWp1bWJvdHJvbiB7XG4gICAgICAgICAgICAgICAgLnNsaWNrLWRvdHMge1xuICAgICAgICAgICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItZ3JheS0xO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IHJlbSgxMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHJlbSgxMCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgJi5zbGljay1hY3RpdmU6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1ncmF5LTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiByZW0oMzYwKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIHJlbSgxNSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbWQpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IHJlbSg0MCk7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogcmVtKDQwKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgIGhlaWdodDogcmVtKDQ1NSk7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IHJlbSg4OCk7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogcmVtKDg4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICAgICAmLS1jbXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMjApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13cmFwcGVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1qdW1ib3Ryb24oKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgaGVscGVyLWltcG9ydChtb2xlY3VsZSwgbGF6eS1pbWFnZSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGF6eS1pbWFnZSgpO1xufVxuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBoZWxwZXItaW1wb3J0KG1vbGVjdWxlLCBtYWluLW92ZXJsYXkpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLW1haW4tb3ZlcmxheTtcbn1cbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgaGVscGVyLWltcG9ydChtb2xlY3VsZSwgbWFpbi1wb3B1cCkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbWFpbi1wb3B1cDtcbn1cbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAkYWN0aXZlLXRyaWdnZXItY2xhc3M6ICcuaXMtYWN0aXZlJztcblxuICAgICAgICAmX19saW5rLFxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiByZW0oMC4yKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluay1pY29uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkdGFibGV0TGFuZHNjYXBlKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgLnNhbGUtY29sb3Ige1xuICAgICAgICAgICAgI3skbmFtZX1fX2xpbmssXG4gICAgICAgICAgICAjeyRuYW1lfV9fdGV4dCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCwgMjApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5uZXctY29sb3Ige1xuICAgICAgICAgICAgI3skbmFtZX1fX2xpbmssXG4gICAgICAgICAgICAjeyRuYW1lfV9fdGV4dCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluLCAyMCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1maWx0ZXItZW51bWVyYXRpb24ge1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMTgpO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgxMCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWZvb3RlciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiByZW0oMTYpIHJlbSg4KSAwO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc29jaWFsIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgcmVtKDgpO1xuXG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mb290ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIG1hcmdpbjogMCByZW0oLTgpIHJlbSgyNik7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIHJlbSgyMCk7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRtZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2NpYWwge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDI2KTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogbGVmdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RyaWdnZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiByZW0oMjcpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJHhsKSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdHJpZ2dlci1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IHJlbSgyNyk7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgLSAxO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJHhsKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IHJlbSgyMCk7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IHJlbSgtMjApO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi1pY29uIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgcm90YXRlKC05MGRlZyk7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJHhsKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTM7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSgyKTtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmI3skYWN0aXZlLXRyaWdnZXItY2xhc3N9IHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfV9fdHJpZ2dlci1idXR0b24taWNvbiB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHJvdGF0ZSgtMTgwZGVnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBMZXZlbCAwXG5cbiAgICAgICAgJi0tbHZsLTAge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCR4bCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLS1sdmwtMCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IHJlbSgxMSk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcblxuICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogc29saWQgcmVtKDEpICRzZXR0aW5nLWNvbG9yLWdyYXktMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCR0YWJsZXRMYW5kc2NhcGUpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnNob3dlZCAjeyRuYW1lfS13cmFwcGVyLS1sdmwtMSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCR4bCkge1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJHhsKSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogcmVtKDQwKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJHh4bCkge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHJlbSg2MCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmI3skbmFtZX1fX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkeGwpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IHJlbSgtMjUpO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHJlbSgxMCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogcmVtKDEwKTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJHNldHRpbmctYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5LCAkc2V0dGluZy1lZmZlY3QtZmFzdC1kdXJhdGlvbiwgZWFzZS1pbi1vdXQgMTAwbXMpO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCR4bCkge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogcmVtKDMwKTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiByZW0oMik7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWdyYXktMjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJjpob3Zlcjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmstLWx2bC0wLFxuICAgICAgICAmX190ZXh0LS1sdmwtMCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhtZWRpdW0pO1xuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IHJlbSgwLjIpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSg1Mik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS00O1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJHhsKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCA1KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogZncocmVndWxhcik7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiByZW0oMTYpO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMTgpO1xuICAgICAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiByZW0oOCkgMCByZW0oNik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBMZXZlbCAxXG5cbiAgICAgICAgJi13cmFwcGVyLS1sdmwtMSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJHhsKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IHJlbSgxNSk7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgICAgICBsZWZ0OiByZW0oLTEwKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgICAgICAgICAgICAgIHdpZHRoOiByZW0oNTYwKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCR4eGwtbWluKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IHJlbSg2NTApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJHh4eGwtbWluKSB7XG4gICAgICAgICAgICAgICAgbGVmdDogcmVtKC0yOCk7XG4gICAgICAgICAgICAgICAgd2lkdGg6IHJlbSg3MjApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYtLWx2bC0xIHtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDEyKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCR4bCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogcmVtKDIwKSByZW0oMjApIHJlbSgxNSk7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJHNldHRpbmctYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAwIHJlbSgxOCkgcmVtKDE4KSAwICRzZXR0aW5nLWNvbG9yLXNoYWRvdy0xLCAwIHJlbSgzKSByZW0oMykgMCAkc2V0dGluZy1jb2xvci1zaGFkb3ctMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCR4eHhsKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogcmVtKDM4KSByZW0oMzkpIHJlbSg0Myk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLS1sdmwtMSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJHRhYmxldExhbmRzY2FwZSkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgyMCk7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDMzLjMzMzMzJTtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDMzLjMzMzMzJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCR4eHhsLW1pbikge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAyNSU7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiAyNSU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rLS1sdmwtMSxcbiAgICAgICAgJl9fdGV4dC0tbHZsLTEge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgxNik7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtKDQyKTtcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiByZW0oMC4yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkeGwpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTcpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhtZWRpdW0pO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMjYpO1xuICAgICAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rLS1sdmwtMTpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS0zO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdHJpZ2dlci1idXR0b24tLWx2bC0xIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTI7XG5cbiAgICAgICAgICAgICYjeyRhY3RpdmUtdHJpZ2dlci1jbGFzc306OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgd2lkdGg6IHJlbSg5OTkpO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1ncmF5LTc7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc3Vic3RyYXRlO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCR4bCkge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIExldmVsIDJcblxuICAgICAgICAmLS1sdmwtMiB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDEwKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCR4bCkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS0tbHZsLTIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCR4bCkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IHJlbSgzKSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluay0tbHZsLTIsXG4gICAgICAgICZfX3RleHQtLWx2bC0yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMCByZW0oMjApO1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTUpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSg0Mik7XG4gICAgICAgICAgICBmb250LXdlaWdodDogZncocmVndWxhcik7XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogcmVtKDAuMik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS0zO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJHhsKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmX19saW5rLS1sdmwtMjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS00O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLW1lbnUoKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1tb25leS1wcmljZSB7XG4gICAgJG5hbWU6ICcubW9uZXktcHJpY2UnO1xuXG4gICAgJi0tYXN0ZXJpc2tzICN7JG5hbWV9X19hbW91bnQ6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAzcHg7XG4gICAgfVxuXG4gICAgJl9fYW1vdW50IHtcbiAgICAgICAgZm9udC1zaXplOiByZW0oMTYpO1xuICAgIH1cblxuICAgICZfX2Ftb3VudC0taGFzLW9yaWdpbmFsLXByaWNlIHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyZWVuLTE7XG4gICAgfVxuXG4gICAgJl9fYW1vdW50LS1vcmlnaW5hbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDEzKTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNDtcbiAgICB9XG59XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3Qge1xuICAgICYtLXNvY2lhbCB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1leHRlcm5hbCB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDZweCA4cHggMCByZ2JhKDAsIDAsIDAsIDAuMDkpO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1heCgkdGFibGV0TGFuZHNjYXBlKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2xpbmsge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWdyYXktNDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiByZW0oMzEpO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiByZW0oOCkgcmVtKDcpIHJlbSg2KTtcblxuICAgICAgICAgICAgICAgIC5mYS1leHRlcm5hbC1saW5rIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGluY2x1ZGUgbmF2aWdhdGlvbi1tdWx0aWxldmVsKCk7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGhlbHBlci1pbXBvcnQobW9sZWN1bGUsIG5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3Q7XG59XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbi10b3A6IHJlbSg3KTtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0oNDApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW0oNCkgcmVtKDgpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNDtcbiAgICAgICAgICAgIG1pbi13aWR0aDogcmVtKDM0KTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMjYpO1xuXG4gICAgICAgICAgICBpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYnV0dG9uIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1ncmF5LTk7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHJlbSgyKTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHJlbSgyKTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbWQpIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHJlbSg0KTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiByZW0oNCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktMTA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXByZXZpb3VzLFxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMjApO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogcmVtKDIwKTtcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICAmLFxuICAgICAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTExO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlYXJjaC1jbXMtcmVzdWx0cyB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oNjApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJHhsKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDExMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktcGFnaW5hdGlvbigpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBoZWxwZXItaW1wb3J0KG1vbGVjdWxlLCBwYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcikge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3I7XG59XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGhlbHBlci1pbXBvcnQobW9sZWN1bGUsIHBhc3N3b3JkLWZpZWxkKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1maWVsZDtcbn1cbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1wcmljZSB7XG4gICAgJG5hbWU6ICY7XG5cbiAgICAmIHsgZGlzcGxheTogYmxvY2s7IH1cblxuICAgICYtLXBkcCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgyMyk7XG4gICAgfVxuXG4gICAgJi0tY2FydCB7XG4gICAgICAgIG1hcmdpbjogMCAwICRzZXR0aW5nLWdyaWQtc3BhY2U7XG4gICAgfVxuXG4gICAgJi0tY2F0YWxvZy1saXN0IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDEwKTtcbiAgICB9XG5cbiAgICAmLS1hdmFpbGFibGUge1xuICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAgJHNldHRpbmctZ3JpZC1zcGFjZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLXN1bW1hcnkge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgJl9fYW1vdW50IHtcbiAgICAgICAgZm9udC1zaXplOiByZW0oMTYpO1xuICAgICAgICBmb250LXdlaWdodDogZncobWVkaXVtKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IG1hcF9nZXQoJHNldHRpbmctZm9udC1saW5lLWhlaWdodCwgMik7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTQ7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlkZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZHAge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMjQpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KGJvbGQpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDI2KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhcnQge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTgpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KGJvbGQpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYXRhbG9nIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ncmVlbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JlZW4tMTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFzdGVyaXNrczphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogM3B4O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTUpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktMjtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhyZWd1bGFyKTtcblxuICAgICAgICAgICAgJiN7JG5hbWV9X19hbW91bnQtLXBkcCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWF4KCRsZyAtIDEpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMjQpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHJlbSg0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogcmVtKDQpO1xuXG4gICAgICAgICAgICAmI3skbmFtZX1fX2Ftb3VudC0tY2F0YWxvZy1saXN0IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJG1kKSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19tb2RlIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS00O1xuICAgICAgICBmb250LXNpemU6IHJlbSgxMik7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhyZWd1bGFyKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgxMik7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiByZW0oNSk7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgxMik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZHAge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTMpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBkcCxcbiAgICAgICAgJi0tY2FydCxcbiAgICAgICAgJi0tY2F0YWxvZy1saXN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ibG9jayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogc3R5bGVsaW50LWRpc2FibGUgKi9cblxuJGNhdGFsb2ctc3BhY2UteDogcmVtKDE0KTtcbiRuYW1lOiAnLnByb2R1Y3QtY2FyZCc7XG5cbkBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1jYXJkICgkbmFtZSkge1xuICAgICYge1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIHBhZGRpbmc6IDAgMCByZW0oMzApO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1heCgkbWQtbWF4KSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIH1cblxuICAgICYge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS04O1xuICAgICAgICBmb250LXNpemU6IHJlbSgxOCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMjQpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1heCgkc20tbWF4KSB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDIwKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgyNik7XG4gICAgfVxuXG4gICAgJi0tZXF1YWwtaGVpZ2h0IHtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cblxuICAgICYtLWZ1bGwtaGVpZ2h0IHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgICYtLWNtcywgJi0tc2xpZGVyIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICN7JG5hbWV9X19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICZfX21vZGUge1xuICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHBhZGRpbmc6IHJlbSgxNik7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgbWluLWhlaWdodDogcmVtKDQwMCk7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWF4KCRzbS1tYXgpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbSgxNikgcmVtKDQwKTtcblxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2F0YWxvZyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRjYXRhbG9nLXNwYWNlLXggcmVtKDI2KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhcnQge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDEwKTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnByaWNlX19tb2RlIHtcbiAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXByb2R1Y3Qtc2V0IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJGNhdGFsb2ctc3BhY2UteCByZW0oMjYpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pbWFnZS13cmFwIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXJnaW46IDAgKC0kY2F0YWxvZy1zcGFjZS14KSByZW0oMTUpO1xuICAgICAgICBwYWRkaW5nOiByZW0oOCkgJGNhdGFsb2ctc3BhY2UteDtcbiAgICAgICAgZmxleC1iYXNpczogMTAwJTtcblxuICAgICAgICAmLS1wcm9kdWN0LXNldCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiByZW0oMjQzKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhdGFsb2cge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFscGhhLTI7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX25vLWltYWdlIHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktODtcbiAgICAgICAgZm9udC1zaXplOiByZW0oNDApO1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcblxuICAgICAgICAmLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMjApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYmFkZ2Uge1xuICAgICAgICB3aWR0aDogcmVtKDk2KTtcbiAgICAgICAgaGVpZ2h0OiByZW0oOTYpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiByZW0oMTYpO1xuICAgICAgICB0b3A6IHJlbSgxNik7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgfVxuXG4gICAgJl9fb3ZlcmxheSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTQ7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDIwKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KG1lZGl1bSk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMjUpO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogcmVtKDAuMik7XG5cbiAgICAgICAgJi0tY2F0YWxvZyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS00O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiByZW0oNjUpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDYpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1tYXgoJHNtLW1heCkge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IHJlbSg4MSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wcm9kdWN0LXNldCB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgxNik7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IHJlbSgwLjEpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY21zLCAmLS1zbGlkZXIge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDI1KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2luZm8ge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgJl9fdmFyaWFudCB7XG4gICAgICAgIG1hcmdpbjogcmVtKDgpIDAgcmVtKDEwKTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMjQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY2F0ZWdvcnkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgyMCk7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiByZW0oMC4yKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KHJlZ3VsYXIpO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS0zO1xuICAgICAgICBtYXJnaW4tdG9wOiByZW0oMyk7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTYpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgyMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19yYXRpbmcge1xuICAgICAgICBtYXJnaW4tdG9wOiByZW0oMTEpO1xuICAgIH1cblxuICAgICZfX3ByaWNlIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW46IHJlbSg2KSAwIDAgMDtcblxuICAgICAgICAmLS1jbXMsICYtLXNsaWRlciB7XG4gICAgICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2FjdGlvbnMge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgIH1cblxuICAgICZfX2RldGFpbC1idXR0b24ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLXRvcDogcmVtKDEwKTtcbiAgICB9XG5cbiAgICAmX19mb290ZXIge1xuICAgICAgICAucHJpY2UtZmV0Y2hlcntcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXI6IHJlbSgyKSBzb2xpZCAkc2V0dGluZy1jb2xvci1ncmF5LTc7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRzZXR0aW5nLWJvcmRlci1yYWRpdXM7XG4gICAgICAgIHBhZGRpbmc6IHJlbSgxMik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgxMCk7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJG1kKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiByZW0oMjIpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgyMCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG9wcGluZy1saXN0LWF2YWlsYWJsZSB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDc1KTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiByZW0oOCk7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDEyKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiByZW0oMzYpO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oMjgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1pbWFnZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRzZXR0aW5nLWJvcmRlci1yYWRpdXMgMCAwICRzZXR0aW5nLWJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgd2lkdGg6IHJlbSg3OCk7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiByZW0oNzgpO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRtZCkge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjIlO1xuICAgICAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDIyJTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXRvdGFsIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiByZW0oMzYpO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDI4KTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDM0JTtcbiAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiAzNCU7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICN7JG5hbWV9ICYge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHNldHRpbmctZ3JpZC1zcGFjZSoyfSArICN7JHNldHRpbmctZ3JpZC1zcGFjZX0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb250ZW50IHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA2NCU7XG4gICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogNjQlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3VtbWFyeTpub3QoJi0taW1hZ2UpIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiByZW0oMjgpO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDIwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gI3tyZW0oNzgpfSk7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBjYWxjKDEwMCUgLSAje3JlbSg3OCl9KTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbWQpIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDc4JTtcbiAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiA3OCU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiN7JG5hbWV9X19jb2wtLXN1bW1hcnkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG9wcGluZy1saXN0Om5vdCgmLS1pbWFnZSkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oMjApO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDI4KTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IHJlbSgyOCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG5cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IHJlbSgyMCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3BwaW5nLWxpc3QtYWx0ZXJuYXRpdmUge1xuICAgICAgICAgICAgICAgIHdpZHRoOiA2OSU7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiA2OSU7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA3OCU7XG4gICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogNzglO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYjeyRuYW1lfV9fY29sLS1pbWFnZSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAzMSU7XG4gICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMzElO1xuXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyMiU7XG4gICAgICAgICAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDIyJTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYjeyRuYW1lfV9fY29sLS1jb250ZW50IHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogNTglO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiA1OCU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmI3skbmFtZX1fX2NvbC0tdG90YWwge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiA0MiU7XG4gICAgICAgICAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDQyJTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICAmOm5vdCgjeyRuYW1lfV9fY29sLS1jb250ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbm5lciB7XG4gICAgICAgICAgICAmLS1mdWxsLWhlaWdodCB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS10b3RhbCB7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3Rpb25zIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDYpO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE0KTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhtZWRpdW0pO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTU7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGhlaWdodDogNDcuMnB4O1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuICAgICAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMjApO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSg4KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvcHBpbmctbGlzdC1hbHRlcm5hdGl2ZSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTIpO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgxNik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiByZW0oMTQpO1xuICAgICAgICAgICAgaGVpZ2h0OiByZW0oMTQpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHJlbSg0KTtcbiAgICAgICAgICAgIHRleHQtaW5kZW50OiByZW0oLTk5OTkpO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbG9yLXByZXZpZXcge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtKDE1KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDEzKTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhtZWRpdW0pO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbSgyMSk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtKDIxKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSgxMCk7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sb3ItcHJldmlldy1kZWNvcmF0aW9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiByZW0oMyk7XG4gICAgICAgICAgICB3aWR0aDogcmVtKDE1KTtcbiAgICAgICAgICAgIGhlaWdodDogcmVtKDE1KTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgIGJvcmRlcjogcmVtKDEpIHNvbGlkICRzZXR0aW5nLWNvbG9yLWdyYXktMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2F2YWlsYWJsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhtZWRpdW0pO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSg4KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZpeGVkLWlucHV0IHtcbiAgICAgICAgICAgIG1heC13aWR0aDogcmVtKDEzOCk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMzApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG9wcGluZy1saXN0LWFsdGVybmF0aXZlIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgxMCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVja2JveCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtY29sIHtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbWQtbWF4KSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFscGhhLTI7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogcmVtKDEyKTtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IHJlbSgyMCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJi0tc2hvcHBpbmctbGlzdCB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG5cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWxwaGEtMjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oMjApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fcXVhbnRpdHktaG9sZGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oMTYpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0oMTMpO1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTMpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE0KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi10aXRsZSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogZncobWVkaXVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1jYXJ0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogcmVtKDMyKTtcbiAgICAgICAgICAgIHJpZ2h0OiByZW0oNik7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fcmVtb3ZlLWJ1dHRvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0oLTQ4KTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JlbW92ZS1idXR0b24tdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFkZ2Uge1xuICAgICAgICAgICAgd2lkdGg6IHJlbSg4MCk7XG4gICAgICAgICAgICBoZWlnaHQ6IHJlbSg4MCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICByaWdodDogcmVtKDgpO1xuICAgICAgICAgICAgdG9wOiByZW0oOCk7XG4gICAgICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBoZWxwZXItaW1wb3J0KG1vbGVjdWxlLCBwcm9kdWN0LWl0ZW0tbGlzdCkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3Q7XG59XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oKSB7XG5cbiAgICAmX19vdmVybGF5IHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWluLWhlaWdodDogcmVtKDE2MCk7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRzbS1tYXgpIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IHVuc2V0O1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgLnRodW1ibmFpbCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDIwKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJHNldHRpbmctYm9yZGVyLXJhZGl1cztcbiAgICB9XG5cbiAgICAmX19pbWFnZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW0gcmVtKDE2KTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1heCgkc20tbWF4KSB7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbm8taW1hZ2Uge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS04O1xuICAgICAgICBmb250LXNpemU6IHJlbSg0MCk7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIH1cblxuICAgICZfX2JhZGdlIHtcbiAgICAgICAgd2lkdGg6IHJlbSg3Mik7XG4gICAgICAgIGhlaWdodDogcmVtKDcyKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogcmVtKDE2KTtcbiAgICAgICAgdG9wOiByZW0oMTYpO1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgIH1cblxuICAgICZfX3Byb2plY3QtcmVxdWVzdC1wcm9kdWN0IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyZWVuLTE7XG4gICAgfVxuXG4gICAgJl9fY29udGVudCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICBtaW4taGVpZ2h0OiByZW0oMTUwKTtcbiAgICAgICAgcGFkZGluZzogcmVtKDIwKSByZW0oMzApIHJlbSgyMCkgcmVtKDIwKTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1heCgkc20tbWF4KSB7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS0xMTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2F0dHJpYnV0ZXMge1xuICAgICAgICBtYXJnaW4tdG9wOiByZW0oMjApO1xuICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1heCgkc20tbWF4KSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgdGQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNDtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogcmVtKDE1KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5mYS1jaGVjayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JlZW4tMTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mYS10aW1lcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItcmVkLTE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX190b3RhbCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktMTE7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTQ7XG4gICAgICAgIHBhZGRpbmc6IHJlbSgyMCkgcmVtKDIwKSByZW0oMjApIHJlbSgyMCk7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWF4KCRzbS1tYXgpIHtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkeHhsLW1pbikge1xuICAgICAgICAgICAgcGFkZGluZzogcmVtKDIwKSByZW0oMTUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1hY3Rpb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTVweDtcblxuICAgICAgICAgICAgaSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb21wYXJlLWFkZCB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTQ7XG4gICAgfVxuXG4gICAgJl9faW5uZXIge1xuICAgICAgICAmLS10b3RhbCB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgxNSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19uYW1lIHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNDtcbiAgICAgICAgZm9udC1zaXplOiByZW0oMjApO1xuICAgICAgICBmb250LXdlaWdodDogZncobWVkaXVtKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IHJlbSgwLjEpO1xuICAgIH1cblxuICAgICZfX2FjdGlvbnMge1xuICAgICAgICBmb250LXNpemU6IHJlbSgxNSk7XG4gICAgICAgIG1hcmdpbi10b3A6IHJlbSgxMCk7XG5cbiAgICAgICAgJi1hbGlnbi1ib3R0b20ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX192YXJpYW50LWFjdGlvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDE2KTtcbiAgICB9XG5cbiAgICAmX19sb2dpbi1ub3RpY2Uge1xuICAgICAgICBpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS04O1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBhOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmljb24uc2VsZWN0X19jYXJldCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLnByNSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbSg1KTtcbiAgICB9XG59XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDEyKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXM7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS00O1xuICAgICAgICAgICAgd2lkdGg6IHJlbSg0Myk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAzO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJHhsKSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItcmVkLTE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9NTApO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY2xlYXIge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiByZW0oNTMpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTE7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogcmVtKDIwKTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHJlbSgyNCk7XG4gICAgICAgICAgICAgICAgd2lkdGg6IHJlbSgyNCk7XG4gICAgICAgICAgICAgICAgdG9wOiByZW0oMjApO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCR4bCkge1xuICAgICAgICAgICAgICAgICAgICB0b3A6IHJlbSg2KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXN1Ym1pdCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItcmVkLTE7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJHhsKSB7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmljb24ge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogcmVtKDIwKTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiByZW0oMjApO1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJHhsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogcmVtKDE2KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogcmVtKDE2KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1zZWFyY2gtZm9ybTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgaGVscGVyLWltcG9ydChtb2xlY3VsZSwgc2ltcGxlLWNhcm91c2VsKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWw7XG59XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGhlbHBlci1pbXBvcnQobW9sZWN1bGUsIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm07XG59XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGhlbHBlci1pbXBvcnQobW9sZWN1bGUsIHNob3AtdWktc3RhdHVzKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1zdGF0dXM7XG59XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBtYXJnaW46IHJlbSgtMykgMCAwIDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIHJlbSgxNikgMCByZW0oMjApO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWdyYXktMTE7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwIDAgJHNldHRpbmctYm9yZGVyLXJhZGl1cyAkc2V0dGluZy1ib3JkZXItcmFkaXVzO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDE4cHggMThweCAwICRzZXR0aW5nLWNvbG9yLXNoYWRvdy0xLCAwIDNweCAzcHggMCAkc2V0dGluZy1jb2xvci1zaGFkb3ctMTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogcmVtKDMwMCk7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAzO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUsICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIGhlaWdodDogcmVtKDYpO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6IDUwMDtcbiAgICAgICAgICAgIH1cblxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiByZW0oMjQpO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbSgxNCk7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiByZW0oMTIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICA+IC5ncmlkIHtcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IG5vcm1hbDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IHJlbSg4KTtcblxuICAgICAgICAgICAgICAgICAgICA+IC5jb2wge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMCByZW0oMzIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJHhsKSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWF4KCR4bC1tYXgpIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IHJlbSgxMDIpO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogcmVtKDQyMyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJHh4bCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiByZW0oNDIzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbSgyMikgcmVtKDg3KSByZW0oMTgpIHJlbSgxNik7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgxOCk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogZncoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1ncmF5LTk7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkc2V0dGluZy1ib3JkZXItcmFkaXVzO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCR4bCkge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE1KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogZncocmVndWxhcik7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IHJlbSg4KTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDgpO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogcmVtKDEwKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkc2V0dGluZy1ib3JkZXItcmFkaXVzICRzZXR0aW5nLWJvcmRlci1yYWRpdXMgMCAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJvZHVjdCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDEwKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3Byb2R1Y3QtYWN0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcblxuICAgICAgICAgICAgPiBidXR0b24ge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE1KTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0LWhvdmVyO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcGFkZGluZzogcmVtKDIyKSByZW0oNTYpIHJlbSgxOCkgcmVtKDQzKTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE4KTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhib2xkKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTI7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJHhsKSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTUpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhyZWd1bGFyKTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogcmVtKDgpO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oOCk7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiByZW0oMTApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNztcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkc2V0dGluZy1ib3JkZXItcmFkaXVzICRzZXR0aW5nLWJvcmRlci1yYWRpdXMgMCAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW1wb3J0ICcuLi8uLi9hdG9tcy9jaGVja2JveC9jaGVja2JveCc7XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG5cbiAgICAgICAgJl9faW5wdXQ6Y2hlY2tlZCB+ICZfX2xhYmVsIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhyZWd1bGFyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS10b2dnbGVyLWNoZWNrYm94O1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW1wb3J0ICcuLi8uLi9hdG9tcy9yYWRpby9yYWRpbyc7XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0OmNoZWNrZWQgfiB7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDAuMjVyZW0gJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2xhYmVsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS01O1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhtZWRpdW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLXRvZ2dsZXItcmFkaW87XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uL3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4ucGFnZS1sYXlvdXQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAuY29udGVudC13cmFwIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItZ3JheS0xMDtcbiAgICAgICAgZmxleDogMTtcblxuICAgICAgICBAbWVkaWEgcHJpbnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRPRE86IHRlbXBvcmFyeSByZW1vdmUgaG9yaXpvbnRhbCBzY3JvbGwsIG5lZWQgdG8gcmVtb3ZlIHRoaXMgc3R5bGUgYWZ0ZXIgaW1wbGVtZW50YXRpb24gbW9iaWxlIGRlc2lnbiBvbiBoZWFkZXIgYW5kIGZvb3RlclxuICAgICAgICA+IG1haW4ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnBhZ2UtbGF5b3V0LW1haW4ge1xuICAgICYtLWNtcy1zZWFyY2gtcGFnZSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZy10b3A6IHJlbSgxNik7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IHJlbSgyMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1jYXRhbG9nLXBhZ2UtY29udGVudCB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oNjApO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oNzApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tcGRwIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMzBweCAwIDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1xdWljay1vcmRlci1wYWdlIHtcbiAgICAgICAgcGFkZGluZzogcmVtKDE0KSAwIHJlbSg2MCk7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgcGFkZGluZzogcmVtKDUwKSAwIHJlbSg1NCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1jYXJ0LXBhZ2Uge1xuICAgICAgICBwYWRkaW5nLXRvcDogcmVtKDE0KTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IHJlbSgzMCk7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IHJlbSgzMik7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDYwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkeGwpIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oMTIwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLWNoZWNrb3V0LXBhZ2Uge1xuICAgICAgICBwYWRkaW5nLXRvcDogcmVtKDI0KTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IHJlbSg4MCk7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IHJlbSgzMik7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJHhsKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDEyMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1jbXMtcGFnZSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiByZW0oMzIpO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDcwKTtcbiAgICB9XG5cbiAgICAmLS1zdWNjZXNzIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oNTApO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkeGwpIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oMTEwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLWVycm9yLXBhZ2Uge1xuICAgICAgICBtaW4taGVpZ2h0OiByZW0oNDYwKTtcbiAgICAgICAgcGFkZGluZy10b3A6IHJlbSgzNSk7XG4gICAgfVxuXG4gICAgJHNldHRpbmctcGRwLWdhbGxlcnktbWF4LXdpZHRoOiA2NjA7XG4gICAgJHNldHRpbmctc2l0ZS1tYXgtd2lkdGg6IDEyMDA7XG5cbiAgICAmX19wZHAtZ2FsbGVyeSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFscGhhLTI7XG4gICAgICAgIHBhZGRpbmc6IDAgcmVtKDE1KSByZW0oMTUpO1xuICAgICAgICBtYXJnaW46IDAgcmVtKC0xNSk7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAzMHB4KTtcbiAgICAgICAgbWluLXdpZHRoOiAxMDAlO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skc2V0dGluZy1wZHAtZ2FsbGVyeS1tYXgtd2lkdGh9IC8gI3skc2V0dGluZy1zaXRlLW1heC13aWR0aH0gKiAxMDAlKTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogY2FsYygjeyRzZXR0aW5nLXBkcC1nYWxsZXJ5LW1heC13aWR0aH0gLyAjeyRzZXR0aW5nLXNpdGUtbWF4LXdpZHRofSAqIDEwMCUpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIHJlbSgxNSkgMCAwO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5tYWluLCBtYWluLnBhZ2UtbGFuZGluZyAuYm94IHtcbiAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1ncmF5LTEwO1xuXG4gICAgQG1lZGlhIHByaW50IHtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICB9XG59XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi5hY3RpdmUtZmlsdGVyIHtcbiAgICBsaW5lLWhlaWdodDogcmVtKDE4KTtcbiAgICBib3JkZXItcmFkaXVzOiAkc2V0dGluZy1ib3JkZXItcmFkaXVzO1xuICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTQ7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4uY2F0YWxvZy1jbXMtYmxvY2sge1xuXG4gICAgJiA+ICoge1xuICAgICAgICBmb250OiBmdyhtZWRpdW0pIHJlbSgxOCkvcmVtKDIzKSAkc2V0dGluZy1mb250LWZhbWlseTtcbiAgICB9XG5cbiAgICBwIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0oMTUpO1xuICAgICAgICBsaW5lLWhlaWdodDogcmVtKDIyKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KHJlZ3VsYXIpO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS0yO1xuICAgICAgICBtYXJnaW4tdG9wOiByZW0oMTApO1xuICAgIH1cblxuICAgIGEge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS0zO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBociB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgJi0tc2lkZWJhciB7XG4gICAgICAgIG1hcmdpbi10b3A6IHJlbSg0OCk7XG5cbiAgICAgICAgcCB7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCByZW0oMikgcmVtKDQpICRzZXR0aW5nLWNvbG9yLXNoYWRvdy0xO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tYm90dG9tIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICYgPiAqIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDMyKTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oNDEpO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS0yO1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTgpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgyOSk7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0oMjQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi13cmFwIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS03O1xuICAgICAgICBwYWRkaW5nOiByZW0oNTApIDAgcmVtKDM4KTtcbiAgICB9XG59XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi5maWx0ZXItY2F0ZWdvcnkge1xuICAgICZfX21lbnUtbGluayB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgxMSk7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTQ7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIGZvbnQ6IGZ3KHJlZ3VsYXIpIHJlbSgxNSkvcmVtKDIzKSAkc2V0dGluZy1mb250LWZhbWlseTtcblxuICAgICAgICAmLS1sdmwtMSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS00O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbHZsLTIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgICYsXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogZncobWVkaXVtKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19saW5rLXRleHQge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cblxuICAgICZfX21lbnUge1xuICAgICAgICAmOm5vdCgmLS1sdmwtMSkge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi5maWx0ZXItZW51bWVyYXRpb24ge1xuICAgIG1hcmdpbi1ib3R0b206IC0wLjVyZW07XG5cbiAgICAmX19zZWFyY2gge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZ3JheS05O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkc2V0dGluZy1ib3JkZXItcmFkaXVzO1xuICAgICAgICBmb250LXNpemU6IHJlbSgxOCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgxNSk7XG4gICAgICAgIHBhZGRpbmc6IHJlbSg4KSByZW0oNTYpIHJlbSg4KSByZW0oMTApO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgxNSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zaG93LW1vcmUge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBmb250LWZhbWlseTogJHNldHRpbmctZm9udC1mYW1pbHk7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDE0KTtcbiAgICAgICAgbWFyZ2luLXRvcDogcmVtKDEzKTtcblxuICAgICAgICBpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE0KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLmZpbHRlci1yYW5nZSB7XG5cbiAgICAmX19pbnB1dHMge1xuICAgICAgICBtYXJnaW4tdG9wOiByZW0oMjApO1xuICAgICAgICBmb250LXdlaWdodDogZncobWVkaXVtKTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNDtcbiAgICB9XG5cbiAgICAmX19pbnB1dC13cmFwIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgICZfX2N1cnJlbmN5IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMXB4O1xuICAgICAgICB0b3A6IDFweDtcbiAgICAgICAgYm90dG9tOiAxcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAgJHNldHRpbmctYm9yZGVyLXJhZGl1cyAkc2V0dGluZy1ib3JkZXItcmFkaXVzIDA7XG4gICAgICAgIHdpZHRoOiByZW0oMzApO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgZm9udC1zaXplOiByZW0oMTIpO1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLmZpbHRlci1yYXRpbmcge1xuICAgIGZvbnQtc2l6ZTogcmVtKDE0KTtcblxuICAgICZfX3RleHQge1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLWxpbmtzLWxpc3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1saW5rcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgxNyk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogZncoYm9sZCk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IHJlbSgwLjIpO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IHJlbSgxMik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS00O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE1KTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhyZWd1bGFyKTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMTgpO1xuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IHJlbSgwLjEpO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IHJlbSgxMik7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTM7XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS00O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWFudWZhY3R1cmVyLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktMztcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDEzKTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAzcHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRhZ19fbGlzdCB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIGNvbHVtbi1nYXA6IHJlbSgxMik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLWxpbmtzLWxpc3QoKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLnZpZXctbW9kZS1zd2l0Y2gge1xuICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAmX19saW5rIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS0xMDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZ3JheS0xMjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJHNldHRpbmctYm9yZGVyLXJhZGl1cztcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiByZW0oOCk7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDE0KTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgxOCk7XG5cbiAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogcmVtKDEwKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2xpbmstLWFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLmFjdGl2ZS1maWx0ZXItc2VjdGlvbiB7XG4gICAgbWFyZ2luLXRvcDogcmVtKDIwKTtcbiAgICBtYXJnaW4tYm90dG9tOiByZW0oMTIpO1xuXG4gICAgJl9faXRlbSxcbiAgICAuYWN0aXZlLWZpbHRlciB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDE1KTtcblxuICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiByZW0oMTUpO1xuICAgICAgICB9XG4gICAgfVxuICAgICZfX3Jlc2V0IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDE1cHg7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTQ7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDE0KTtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICYsXG4gICAgICAgICAgICAuYWN0aXZlLWZpbHRlci1zZWN0aW9uX19yZXNldC1pY29uIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS0zO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgICZfX3Jlc2V0LWljb24ge1xuICAgICAgICBtYXJnaW4tdG9wOiByZW0oLTQpO1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLmZpbHRlci1zZWN0aW9uIHtcbiAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICBwYWRkaW5nOiByZW0oMTQpIHJlbSgyMCkgcmVtKDU4KTtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWZpbHRlcjtcblxuICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAmX19ob2xkZXIge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gI3tyZW0oMTUwKX0pO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2l0ZW0ge1xuICAgICAgICBwYWRkaW5nOiByZW0oMTgpIDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgcGFkZGluZzogcmVtKDE4KTtcblxuICAgICAgICAgICAgLmpzLWNhdGVnb3J5IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTExO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDM2cHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VwYXJhdGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgyMCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oZWFkaW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1heCgkbWQtbWF4KSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJiB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItZ3JheS05O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgyMCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KGJvbGQpO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IHJlbSgxOCkgcmVtKDE4KSByZW0oMTQpO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX190b2dnbGUtc2Vjb25kYXJ5LWZpbHRlcnMge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgIHBhZGRpbmc6IDE4cHggMThweCAwIDQ4cHg7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJ0ZvbnQgQXdlc29tZSA1IFBybyc7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgY29udGVudDogXCJcXEYwNjFcIjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX190aXRsZSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMCByZW0oMTcpIHJlbSgxMik7XG4gICAgfVxuXG4gICAgJl9fY2xvc2Uge1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS00O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogcmVtKDE3KTtcbiAgICAgICAgcmlnaHQ6IHJlbSgyMCk7XG4gICAgfVxuXG4gICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTQ7XG5cbiAgICAgICAgLmljb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogLTJweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2l0ZW0tY29udGVudCB7XG4gICAgICAgIG1hcmdpbi10b3A6IHJlbSgyMCk7XG4gICAgfVxuXG4gICAgJl9fYWN0aW9ucyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBwYWRkaW5nOiByZW0oMTgpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgyMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19idXR0b24ge1xuICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSgxMCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi5jb21tb24tc2VjdGlvbiB7XG4gICAgcGFkZGluZzogcmVtKDcwKSAwIHJlbSgxNik7XG5cbiAgICAmLS1iZy1kYXJrIHtcbiAgICAgICAgcGFkZGluZzogcmVtKDUwKSAwIHJlbSg4MCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktMTA7XG5cbiAgICAgICAgLnByb2R1Y3QtY2FyZF9fb3ZlcmxheTo6YmVmb3JlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgLnByb2R1Y3QtY2FyZF9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG4gICAgfVxuICAgICYtLXNtLXBhZGRpbmd7XG4gICAgICAgIHBhZGRpbmc6IHJlbSg0NikgMCByZW0oNDYpO1xuICAgIH1cblxuICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICBtYXJnaW4tbGVmdDogLSRzZXR0aW5nLWdyaWQtc3BhY2U7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLSRzZXR0aW5nLWdyaWQtc3BhY2U7XG4gICAgfVxuXG4gICAgJl9fdGl0bGUge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS00O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgyNCk7XG4gICAgICAgICYtLWhvbWV7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS04O1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMjgpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KG1lZGl1bSk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtKDMzKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1heCgkc20tbWF4KXtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgzMik7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgzOCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zdWItdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IG1hcF9nZXQoJHNldHRpbmctZm9udC1zaXplLCBiaWcpO1xuICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS0yO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSg0MCk7XG5cbiAgICB9XG5cbiAgICAmX190ZXh0IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBmb250LXNpemU6IG1hcF9nZXQoJHNldHRpbmctZm9udC1zaXplLCBiaWcpO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS0yO1xuICAgICAgICBsaW5lLWhlaWdodDogMS42MTtcbiAgICAgICAgbWF4LXdpZHRoOiByZW0oOTcwKTtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG8gcmVtKDQwKTtcbiAgICB9XG5cbiAgICAmX19saW5rIHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktMztcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1ncmF5LTMpO1xuICAgICAgICB9XG4gICAgfVxuICAgICYtLWJyYW5ke1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1tYXgoJHhsLW1heCl7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IHJlbSgzMik7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiByZW0oMzIpO1xuICAgICAgICB9XG4gICAgfVxuICAgICYtLW1iMHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgcGFkZGluZy10b3A6IHJlbSg2MCk7XG4gICAgICAgIC5wcm9kdWN0LWNhcmR7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1tYXgoJG1kLW1heCl7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogcmVtKDIwKTtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1tYXgoJHNtLW1heCl7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogcmVtKDApO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGRwLXRpdGxlKCRuYW1lOiAnLnBkcC10aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTQ7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDI4KTtcblxuICAgICAgICAubGFiZWwtZ3JvdXAge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIHRvcDogcmVtKC0yKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBwcm9kdWN0LWRldGFpbC1wZHAtdGl0bGU7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY29uZmlndXJhdG9yKCRuYW1lOiAnLnByb2R1Y3QtYWRkaXRpb25hbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkc2V0dGluZy1mb250LWZhbWlseTtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnLW1pbikge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogcmVtKDI1KTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogcmVtKDMwKTtcblxuICAgICAgICAgICAgLnByb2R1Y3QtdGFic19fY29udGFpbmVyLFxuICAgICAgICAgICAgLnByb2R1Y3QtdGFic19fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wcm9kdWN0LXRhYnNfX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTQ7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDE1KTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE1KTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhtZWRpdW0pO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnLW1pbikge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAbWVkaWEgcHJpbnQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiByZW0oMTUpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnLW1pbikge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IHJlbSgzMCkgcmVtKDE1KSAwIHJlbSg0MCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtdGV4dCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHJlbSg1KTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0oMTApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGV0YWlsLWNvbnRlbnQge1xuICAgICAgICAgICAgdWwge1xuICAgICAgICAgICAgICAgIGxpc3Qtc3R5bGU6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHJlbSg0MCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZXRhaWwge1xuICAgICAgICAgICAgJi1kb2N1bWVudHMsXG4gICAgICAgICAgICAmLWNvbnRlbnQsXG4gICAgICAgICAgICAmLXJlY29tbWVuZHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDE1KTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGctbWluKSB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1wZHAtaHI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLWRvY3VtZW50LWxpbmsge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtKDI1KTtcblxuICAgICAgICAgICAgICAgIEBtZWRpYSBwcmludCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJi1pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTUpO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiByZW0oNSkgMDtcblxuICAgICAgICAgICAgICAgICAgICBAbWVkaWEgcHJpbnQge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYtdGl0bGUge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgxOCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJi1rZXkge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oNSk7XG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG5cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZy1taW4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLXRpdGxlLFxuICAgICAgICAgICAgICAgICYta2V5IHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KG1lZGl1bSk7XG5cbiAgICAgICAgICAgICAgICAgICAgQG1lZGlhIHByaW50IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLXZhbHVlIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTUpO1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogZncocmVndWxhcik7XG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG5cbiAgICAgICAgICAgICAgICAgICAgLmZhLWNoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmVlbi0xO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLmZhLXRpbWVzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1yZWQtMTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JlY29tbWVuZCwgJl9fbWFudWZhY3R1cmVyIHtcbiAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2VjdGlvbi10aXRsZSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTUpO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgxMCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGctbWluKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMCByZW0oMTUpIDAgcmVtKDQwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNvbmZpZ3VyYXRvcjtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtYnVuZGxlKCRuYW1lOiAnLnByb2R1Y3QtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LXdpZHRoOiA4NzBweDtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG8gOTBweDtcblxuICAgICAgICAmLS1jb25maWd1cmF0b3Ige1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDExcHg7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYXJ0IHtcbiAgICAgICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDMyKTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhtaWRkbGUpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIycHg7XG5cbiAgICAgICAgICAgICYtLWNhcnQge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogZncobWVkaXVtKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS01O1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAxMHB4IDAgM3B4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdCB7XG5cbiAgICAgICAgICAgICYtLWNhcnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgMCAwIHJlbSgyMCk7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTMpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhyZWd1bGFyKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS01O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG5cbiAgICAgICAgICAgICYtLWNvbmZpZ3VyYXRvciB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY2FydCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogM3B4IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWctYmxvY2sge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDMyMHB4O1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFscGhhLTE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbmZpZ3VyYXRvciB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogNzBweDtcbiAgICAgICAgICAgICAgICB3aWR0aDogNzBweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDcwcHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDIwcHggMCAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1nIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmZvIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDk1cHg7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xuXG4gICAgICAgICAgICAmLS1jb25maWd1cmF0b3Ige1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE1KTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhtZWRpdW0pO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgxOSk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS01O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTUpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgxOSk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS0zO1xuXG4gICAgICAgICAgICAmLS1jYXJ0IHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgxMyk7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGluY2x1ZGUgcHJvZHVjdC1kZXRhaWwtcGFnZS1idW5kbGU7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY29uZmlndXJhdG9yKCRuYW1lOiAnLnByb2R1Y3QtYnVuZGxlLWRldGFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCAkc2V0dGluZy1jb2xvci1ncmF5LTY7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiBzb2xpZCAxcHggJHNldHRpbmctY29sb3ItZ3JheS02O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTQpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTU7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW0oMTgpIHJlbSgyMCk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItZ3JheS01O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTBweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICByaWdodDogMTlweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAycHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMHB4O1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAyM3B4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS03O1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDEzKTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhyZWd1bGFyKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTU7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIHJlbSgyMCkgcmVtKDI2KTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RldGFpbC1saXN0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgcmVtKDIwKSByZW0oMTgpO1xuXG4gICAgICAgICAgICAmLWtleSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhib2xkKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS01O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLXZhbHVlIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgxMyk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KHJlZ3VsYXIpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTM7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDhweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNvbmZpZ3VyYXRvcjtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXByb2R1Y3QtY21zKCRuYW1lOiAnLnByb2R1Y3QtY21zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogcmVtKDIwKSAwO1xuXG4gICAgICAgICYtLWNvbnRhaW5lcntcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA5NzBweDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvIHJlbSgxMik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS04O1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMjgpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KG1lZGl1bSk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtKDMzKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1heCgkc20tbWF4KXtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgzMik7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgzOCk7XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZnVsbC1sZW5ndGgge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYtLWxlZnQge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogaW5pdGlhbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA5NzBweDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTgpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgyMik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS04O1xuXG5cblxuICAgICAgICAgICAgcDpub3QoLnByb2R1Y3QtY2FyZF9fcHJpY2UpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCByZW0oMTgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS04O1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhib2xkKTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZnVsbC1sZW5ndGgge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYtLWxlZnQge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogaW5pdGlhbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhbm5lciB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgcGFkZGluZzogMCAwIHJlbSgxOCkgMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3RpdGxlIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCByZW0oMTIpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAycHggNHB4ICByZ2JhKDAsIDAsIDAsIDAuNSk7XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX3RleHQge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogaW5pdGlhbDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMnB4IDRweCAgcmdiYSgwLCAwLCAwLCAwLjUpO1xuICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi0tdG9wLXBhZGRpbmctbXtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1heCgkc20tbWF4KXtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogcmVtKDMwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHByb2R1Y3QtZGV0YWlsLXByb2R1Y3QtY21zO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNvbmZpZ3VyYXRvcigkbmFtZTogJy5wcm9kdWN0LWNvbmZpZ3VyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTg7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmctdG9wOiByZW0oMjIpO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDIwKTtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJG1kLW1heCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogcmVtKDUwKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JyYW5kLW5hbWUge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTgpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KG1lZGl1bSk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtKDIzKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTU7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19za3Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTQpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTM7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMjgpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGV0YWlscyxcbiAgICAgICAgJl9fYWRkLXRvLWNhcnQsXG4gICAgICAgICZfX2NvbXBhcmUsXG4gICAgICAgICZfX2F2YWlsYWJpbGl0eSxcbiAgICAgICAgJl9fcHJvamVjdC1yZXF1ZXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogcmVtKDEwKSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5mbyB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMTApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXZhaWxhYmlsaXR5IHtcbiAgICAgICAgICAgIC5mb3JtX19hY3Rpb25zIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkLXRvLWNhcnQge1xuICAgICAgICAgICAgZm9ybSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2Zvcm0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDM1cHg7XG5cbiAgICAgICAgICAgICAgICBAbWVkaWEgcHJpbnQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnNlbGVjdF9fc2VsZWN0IHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHJlbSgzNCk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWF4KCR4bC1tYXgpIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiAxMDBweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtYnV0dG9uIHtcbiAgICAgICAgICAgICAgICAuaWNvbi0tY2FydCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogcmVtKDE4KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtbXVsdGktY2FydC13aWRnZXQge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSA3MXB4KTtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGNhbGMoMTAwJSAtIDcxcHgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuZnVsbC13aWR0aCB7XG4gICAgICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZC10by1zaG9wcGluZy1saXN0IHtcbiAgICAgICAgICAgICYtc2VsZWN0IHtcbiAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gODBweCk7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBjYWxjKDEwMCUgLSA4MHB4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3Nob3BwaW5nLWxpc3Qtc2VsZWN0LFxuICAgICAgICAmX19hZGQtdG8tY2FydC1zZWxlY3RvciB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgICAgIC5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICAgICAgLnNlbGVjdDItc2VsZWN0aW9uX19yZW5kZXJlZCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTg7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogcmVtKDIwKTtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgxOSk7XG4gICAgICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IHJlbSgyMCk7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgcmVtKDMyKSAwIHJlbSgxMCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29tcGFyZSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb21wYXJlLFxuICAgICAgICAmX19wcmludCB7XG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS04O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuaWNvbiB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAucHJpY2UtLXBkcCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLnZvbHVtZS1wcmljZV9fcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMjgpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KG1lZGl1bSk7XG4gICAgICAgIH1cblxuICAgICAgICAuYWRkLXRvLWNhcnQtc2VsZWN0b3Ige1xuICAgICAgICAgICAgLnNlbGVjdF9fc2VsZWN0IHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktODtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHJlbSgyMCk7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgxOCk7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMCByZW0oMTApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmlucHV0LW1lYXN1cmVtZW50LXVuaXQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS0xMTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWdyYXktMTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRzZXR0aW5nLWJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS01O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE1KTtcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbSg3KSByZW0oMzApIHJlbSg3KSByZW0oMTApO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgyMik7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgLnNlbGVjdC1tZWFzdXJlbWVudC11bml0IHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgLnNlbGVjdDItc2VsZWN0aW9uX19yZW5kZXJlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS0xMTtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZGNlMGU1O1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjFyZW07XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuc2VsZWN0Mi1jb250YWluZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1heCgkeGwtbWF4KSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMTAwcHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmN1c3RvbS1zZWxlY3RfX2NhcmV0IHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDFyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYWRkLXRvLXNob3BwaW5nLWxpc3Qge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtKDEwKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCR4eGwpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmxvZ2luLW5vdGljZSB7XG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGhyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1wZHAtaHI7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMTVweDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTVweDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgLm5vLXBhZGRpbmcge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5uby1wYWRkaW5nIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAubm8tcGFkZGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJHh4bCkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAucHI1IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbSg1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wcjEwIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbSgxMCk7XG4gICAgICAgIH1cblxuXG4gICAgICAgIC5wbDE1IHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogcmVtKDE1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wcjEwIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbSgxMCk7XG4gICAgICAgIH1cblxuXG4gICAgICAgIC5wbDE1IHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogcmVtKDE1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5tdDEwIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSgxMCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jb25maWd1cmF0b3I7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY29udGVudCgkbmFtZTogJy5wcm9kdWN0LWNvbnRlbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogaW5oZXJpdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGctbWluKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNvbnRlbnQ7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY29uZmlndXJhdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRzZXR0aW5nLWZvbnQtZmFtaWx5O1xuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTQ7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDE1KTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE1KTtcblxuICAgICAgICAgICAgQG1lZGlhIHByaW50IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbm90aWNlLFxuICAgICAgICAmX19kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgxNik7XG4gICAgICAgICAgICBmb250LXdlaWdodDogZncocmVndWxhcik7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtKDI5KTtcblxuICAgICAgICAgICAgQG1lZGlhIHByaW50IHtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgzMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19ub3RpY2UsXG4gICAgICAgICZfX2Rlc2NyaXB0aW9uLFxuICAgICAgICAmX19wcm9kdWN0LWZlYXR1cmVzIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSgyNSk7XG5cbiAgICAgICAgICAgIHVsIHtcbiAgICAgICAgICAgICAgICBsaXN0LXN0eWxlOiBpbmhlcml0O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiByZW0oNDApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGV0YWlsIHtcbiAgICAgICAgICAgICYtYm91Z2h0LXRvZ2V0aGVyIHtcbiAgICAgICAgICAgICAgICAmLWRldGFpbCB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE1KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLW5hbWUge1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogZncoYm9sZCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJi10b3RhbCB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhib2xkKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiByZW0oMjApIDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmNoZWNrYm94IHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtKDMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0oMzApO1xuXG4gICAgICAgICAgICAgICAgQG1lZGlhIHByaW50IHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLWl0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgxNSk7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IHJlbSg1KSAwO1xuXG4gICAgICAgICAgICAgICAgICAgIEBtZWRpYSBwcmludCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS03O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJi10aXRsZSB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE4KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLWtleSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSg1KTtcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcblxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnLW1pbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYtdGl0bGUsXG4gICAgICAgICAgICAgICAgJi1rZXkge1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogZncobWVkaXVtKTtcblxuICAgICAgICAgICAgICAgICAgICBAbWVkaWEgcHJpbnQge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYtdmFsdWUge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgxNSk7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhyZWd1bGFyKTtcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcblxuICAgICAgICAgICAgICAgICAgICAuZmEtY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyZWVuLTE7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAuZmEtdGltZXMge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXJlZC0xO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJvZHVjdC1mZWF0dXJlcyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0oMjUpO1xuXG4gICAgICAgICAgICBAbWVkaWEgcHJpbnQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSgxMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19yaWdodCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0oMjApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnLW1pbikge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBtZWRpYSBwcmludCB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1tYXgoJG1kLW1heCkge1xuICAgICAgICAgICAgPiBkaXY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jb25maWd1cmF0b3I7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtZG9jdW1lbnRzKCRuYW1lOiAnLnByb2R1Y3QtZG9jdW1lbnRzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGV0YWlsIHtcbiAgICAgICAgICAgICYtZG9jdW1lbnQge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE1KTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oNSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtZG9jdW1lbnRzIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItcGRwLWhyO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgxNSk7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IHJlbSgxNSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtZG9jdW1lbnQtbGluayB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWRvY3VtZW50cztcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1wcmludCgkbmFtZTogJy5wcm9kdWN0LXByaW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGV0YWlscyB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZ3JheS0xO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWdyYXktMTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSgyMCk7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW0oMTUpIHJlbSgzMCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZXRhaWwtbGlzdCB7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW0oMjApIHJlbSg2MCk7XG5cbiAgICAgICAgICAgICYta2V5IHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMzMuMzMzMzMlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLXZhbHVlIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogNjYuNjY2NjclO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZ3JlZW4ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyZWVuLTE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXJlZC0xO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGlzY2xhaW1lciB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0oMjApO1xuXG4gICAgICAgICAgICBAbWVkaWEgcHJpbnQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSg1KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZm8ge1xuICAgICAgICAgICAgcGFkZGluZzogMCByZW0oMzApO1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhIHByaW50IHtcbiAgICAgICAgICAgIC5pbWFnZS1nYWxsZXJ5IHtcbiAgICAgICAgICAgICAgICB3aWR0aDogNTguMzMzMzMlO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogNTguMzMzMzMlO1xuXG4gICAgICAgICAgICAgICAgJl9fY29udGFpbmVyLFxuICAgICAgICAgICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IHJlbSgyNTApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmltYWdlLWdhbGxlcnkgKyAuY29sLS1zbS01IHtcbiAgICAgICAgICAgICAgICB3aWR0aDogNDEuNjY2NjclO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogNDEuNjY2NjclO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucHJvZHVjdC1wcmludF9fZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgcmVtKDMwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LXByaW50O1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LXByaW50KCRuYW1lOiAnLnByb2R1Y3QtcHJpbnRfX2hlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkc2V0dGluZy1jb2xvci1ncmF5LTE7XG5cbiAgICAgICAgQG1lZGlhIHByaW50IHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IGluaGVyaXQ7XG4gICAgICAgIH1cblxuICAgICAgICAuaGVhZGVyX19sb2dvIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1wcmludDtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jb25maWd1cmF0b3IoJG5hbWU6ICcucHJvZHVjdC1zcGVjcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkc2V0dGluZy1mb250LWZhbWlseTtcblxuICAgICAgICAmX19kZXRhaWwtY29udGVudCB7XG4gICAgICAgICAgICB1bCB7XG4gICAgICAgICAgICAgICAgbGlzdC1zdHlsZTogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogcmVtKDQwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RldGFpbCB7XG4gICAgICAgICAgICAmLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSgyNSk7XG5cbiAgICAgICAgICAgICAgICBAbWVkaWEgcHJpbnQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYtaXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE1KTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogcmVtKDUpIDA7XG5cbiAgICAgICAgICAgICAgICAgICAgQG1lZGlhIHByaW50IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTc7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLXRpdGxlIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTgpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYta2V5IHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDUpO1xuICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGctbWluKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJi10aXRsZSxcbiAgICAgICAgICAgICAgICAmLWtleSB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhtZWRpdW0pO1xuXG4gICAgICAgICAgICAgICAgICAgIEBtZWRpYSBwcmludCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJi12YWx1ZSB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE1KTtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KHJlZ3VsYXIpO1xuICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuXG4gICAgICAgICAgICAgICAgICAgIC5mYS1jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JlZW4tMTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC5mYS10aW1lcyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItcmVkLTE7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jb25maWd1cmF0b3I7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtdGFicygkbmFtZTogJy5wcm9kdWN0LXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMzApO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGctbWluKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogcmVtKDIwKSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1wcm9kdWN0LXRhYnMtYm9yZGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTgpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbSg3KSByZW0oNjApIDAgcmVtKDQwKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYuaXMtYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlxcMDBiYlwiO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDIwKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiA0MnB4O1xuICAgICAgICAgICAgICAgIHRvcDogNXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1wZHAtaHI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGctbWluKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYuaXMtYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcblxuICAgICAgICAgICAgICAgIC5wcm9kdWN0LXRhYnNfX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5wcm9kdWN0LXRhYnNfX3RhYi1oZWFkZXIge1xuICAgICAgICAgICAgICAgICAgICAmLW9wZW4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICYtY2xvc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnLW1pbikge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IHJlbSgzMCkgcmVtKDE1KSByZW0oMzApIHJlbSg0MCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWItaGVhZGVyIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbSgxNSkgMDtcblxuICAgICAgICAgICAgJi10ZXh0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogcmVtKDUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLWNsb3NlIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtdGFicztcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtdmFyaWFudC1jb25maWd1cmF0b3IoJG5hbWU6ICcudmFyaWFudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IHNvbGlkIDFweCAkc2V0dGluZy1jb2xvci1ncmF5LTY7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCAkc2V0dGluZy1jb2xvci1ncmF5LTY7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAtMXB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcHJvbW90aW9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE2KTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhtZWRpdW0pO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSg1NCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS01O1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VsZWN0ZWQtdmFsdWUge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTQpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTM7XG4gICAgICAgICAgICBtYXJnaW46IC01cHggMCAxNXB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AaW5jbHVkZSBwcm9kdWN0LWRldGFpbC1wYWdlLXZhcmlhbnQtY29uZmlndXJhdG9yO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4uY21zLXBhZ2UtdGl0bGUge1xuICAgICYgKiB7XG4gICAgICAgIGZvbnQ6IGZ3KGJvbGQpIHJlbSgyOCkvcmVtKDM2KSAkc2V0dGluZy1mb250LWZhbWlseTtcbiAgICB9XG59XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW92ZXJsYXktYmxvY2soJG5hbWU6ICcub3ZlcmxheS1ibG9jaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcblxuICAgICAgICAmLS1pcy1zaG93biB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbm8tc2VhcmNoLFxuICAgICAgICAmLS1uby1hZ2VudC11c2VyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyAtIDE7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktb3ZlcmxheS1ibG9jaygpXG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi5xdWFudGl0eS1vcHRpb24ge1xuICAgIGZvbnQtc2l6ZTogcmVtKDEzKTtcbiAgICBmb250LXdlaWdodDogZncobWVkaXVtKTtcblxuICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0oMTQpO1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3dpdGNoKCRuYW1lOiAnLnN3aXRjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHdpZHRoOiByZW0oMzQpO1xuICAgICAgICBoZWlnaHQ6IHJlbSgxNCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCRzZXR0aW5nLWNvbG9yLWdyYXktMSwgMC40KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogcmVtKDcpO1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgICAgbWFyZ2luOiByZW0oMykgMCByZW0oMykgcmVtKDEwKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgbWFyZ2luLWxlZnQsICRzZXR0aW5nLWVmZmVjdC1kZWZhdWx0LWR1cmF0aW9uKTtcblxuICAgICAgICAmX19oYW5kbGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB3aWR0aDogcmVtKDIwKTtcbiAgICAgICAgICAgIGhlaWdodDogcmVtKDIwKTtcbiAgICAgICAgICAgIG1hcmdpbjogcmVtKC0zKSAwIDAgcmVtKC0xMCk7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgcmVtKDIpIHJlbSg0KSAkc2V0dGluZy1jb2xvci1zaGFkb3ctMjtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBsZWZ0LCAkc2V0dGluZy1lZmZlY3QtZGVmYXVsdC1kdXJhdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJHNldHRpbmctY29sb3ItbWFpbiwgMC41KTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9faGFuZGxlIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAxMDAlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLXN3aXRjaCgpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW1wb3J0ICcuLi9zaWRlLWRyYXdlci9zaWRlLWRyYXdlcic7XG5cbkBtaXhpbiBzaG9wLXVpLWFjY291bnQtbmF2aWdhdGlvbigkbmFtZTogJy5hY2NvdW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgd2lkdGg6IHJlbSgzMjApO1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IHJlbSgtMzIwKTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiByZW0oMTApO1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY291bnQge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW0oMTYpIHJlbSg1MCkgcmVtKDE2KSByZW0oMjQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuXG4gICAgICAgICAgICAmLS1jb21wYW55IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLWljb24ge1xuICAgICAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogcmVtKDMwKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi10ZXh0IHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgxNCk7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgxNCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KG1lZGl1bSk7XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faG9sZGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgcmVtKDIwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1hY2NvdW50LW5hdmlnYXRpb247XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi5mb290ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgQG1lZGlhIHByaW50IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAmX19uYXZpZ2F0aW9uLWJsb2Nre1xuICAgICAgICBtaW4taGVpZ2h0OiByZW0oMzA4KTtcbiAgICAgICAgcGFkZGluZy10b3A6IHJlbSgyNyk7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oMjcpO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1heCgkc20tbWF4KSB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogcmVtKDApO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAmX19zdWJzY3JpYmUge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJG1kKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogcmVtKDIwKTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oMzIpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IHJlbSg1MCk7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDUwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkeGwpIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiByZW0oNzcpO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IHJlbSg3Nyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19sb2dvcyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICBwYWRkaW5nOiByZW0oNDYpIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IHJlbSgyNik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb250YWN0LWluZm97XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1heCgkc20tbWF4KSB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwcHggcmVtKC0xNikgMHB4IHJlbSgtMTUpICRzZXR0aW5nLWNvbG9yLWdyYXktOTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NvbnRhY3QtaW5mby1pdGVtIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgZm9udC1zaXplOiByZW0oMTUpO1xuICAgICAgICBsaW5lLWhlaWdodDogcmVtKDIxKTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IHJlbSgwLjIpO1xuICAgICAgICBjb2xvcjokc2V0dGluZy1jb2xvci1ncmF5LTg7XG4gICAgfVxuXG4gICAgJl9fcGhvbmUge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAmX19zb2NpYWwtYnV0dG9ucyB7XG4gICAgICAgIG1hcmdpbi10b3A6IHJlbSgxOCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgxOCk7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWF4KCRzbS1tYXgpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJG1kLW1pbikge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtKDQyKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSg0Nyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19oaW50IHtcbiAgICAgICAgZm9udC1zaXplOiByZW0oMTMpO1xuICAgICAgICBsaW5lLWhlaWdodDogMXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktMjtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IHJlbSgwLjU0KTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IHJlbSgxMik7XG4gICAgfVxuXG4gICAgJl9fdGhhbmtzLWNlcnRlbyB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDEzKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDFyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTM7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiByZW0oMC41NCk7XG4gICAgfVxuXG4gICAgJl9fY29weXJpZ2h0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZS0xO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICB9XG4gICAgJl9fcm1he1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICB9XG4gICAgJl9faWNvbntcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiByZW0oNik7XG4gICAgICAgIG1hcmdpbi10b3A6IHJlbSgyKTtcbiAgICB9XG4gICAgJl9fc3BhY2Vye1xuXG4gICAgfVxuXG5cbiAgICAmX19wcmljZS1tb2RlIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxufVxuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4ub3JkZXItc2lkZWJhciB7XG4gICAgJl9faXRlbSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNztcbiAgICAgICAgbWFyZ2luLXRvcDogcmVtKDUpO1xuICAgICAgICBwYWRkaW5nOiByZW0oMTcpIHJlbSgyMCk7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDE0KTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KG1lZGl1bSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRzZXR0aW5nLWJvcmRlci1yYWRpdXM7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtKDEwKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN1bW1hcnkge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtKDIwKTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0YXJ0LFxuICAgICAgICAmLS1lbmQge1xuICAgICAgICAgICAgbWFyZ2luOiAwIHJlbSgtMTUpO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiByZW0oMTUpO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogcmVtKDE1KTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IHJlbSgyMCk7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogcmVtKDIwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0YXJ0IHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oMTApO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJHNldHRpbmctYm9yZGVyLXJhZGl1cyAkc2V0dGluZy1ib3JkZXItcmFkaXVzIDAgMDtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IHJlbSgxKSBzb2xpZCAkc2V0dGluZy1jb2xvci1ncmF5LTE7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDE3KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVuZCB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwIDAgJHNldHRpbmctYm9yZGVyLXJhZGl1cyAkc2V0dGluZy1ib3JkZXItcmFkaXVzO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDMzKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oMTcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZS1yZXF1ZXN0Omxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMjApO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmxhYmVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAuaW5wdXQsXG4gICAgICAgIC50ZXh0YXJlYSB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgxMyk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogZncocmVndWxhcik7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtKDE1KTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTM7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkc2V0dGluZy1ib3JkZXItcmFkaXVzO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCByZW0oMTApIHJlbSgxMCkgMCAkc2V0dGluZy1jb2xvci1zaGFkb3ctMSwgMCByZW0oMykgcmVtKDMpIDAgJHNldHRpbmctY29sb3Itc2hhZG93LTE7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogcmVtKDE1KTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDE1KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC50ZXh0YXJlYSB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiByZW0oMTE5KTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMTgpO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZzogcmVtKDE3KSByZW0oMjApIHJlbSgxOCk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiByZW0oODYpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmN1c3RvbS1zZWxlY3QgLmN1c3RvbS1zZWxlY3RfX3NlbGVjdCxcbiAgICAgICAgLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0IC5zZWxlY3QyLXNlbGVjdGlvbl9fcmVuZGVyZWQge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJHNldHRpbmctYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgcmVtKDEwKSByZW0oMTApIDAgJHNldHRpbmctY29sb3Itc2hhZG93LTEsIDAgcmVtKDMpIHJlbSgzKSAwICRzZXR0aW5nLWNvbG9yLXNoYWRvdy0xO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSg1MCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oNDUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IHJlbSgxNCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMTgpO1xuICAgICAgICBmb250LXdlaWdodDogZncobWVkaXVtKTtcblxuICAgICAgICAmLS1zcGFjZS1ib3R0b20ge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdGV4dCB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDE0KTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IHJlbSgtMC4xKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KHJlZ3VsYXIpO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY29udGVudCB7XG4gICAgICAgIG1hcmdpbi10b3A6IHJlbSgxOCk7XG5cbiAgICAgICAgLmZvcm1fX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvcm1fX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAuZm9ybV9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSgzKTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0oMTIpO1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fb3JkZXIge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oNik7XG4gICAgfVxuXG4gICAgJl9fcXVhbnRpdHkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHBoYS0zO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkc2V0dGluZy1ib3JkZXItcmFkaXVzO1xuICAgICAgICBmb250LXNpemU6IHJlbSgxMSk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTM7XG4gICAgICAgIHBhZGRpbmc6IHJlbSg1KSByZW0oOCk7XG4gICAgfVxufVxuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tY2FyZCgkbmFtZTogJy5hY3Rpb24tY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNztcbiAgICAgICAgcGFkZGluZzogcmVtKDIwKTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW0oMjEpIHJlbSgzMCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS01O1xuXG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAgICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMTM4cHgpIHtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIycHg7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS0zO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBsaXN0LXN0eWxlOiBpbmhlcml0O1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHJlbSgyMCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktYWN0aW9uLWNhcmQoKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWNhcmQtZ3JpZCgkbmFtZTogJy5hY3Rpb24tY2FyZC1ncmlkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBtYXJnaW46IC0wLjVyZW07XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcmVtKTtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJkIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAzMy4zMyU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWFjdGlvbi1jYXJkLWdyaWQoKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtKDEpO1xuICAgICAgICAgICAgcGFkZGluZzogcmVtKDkpO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1heCgkeGwtbWF4KSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtKDEwKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJiB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiByZW0oMTApO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbSgxMCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5pY29uLS1jYXJ0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oNCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19xdWFudGl0eS0tY2F0YWxvZy1wYWdlIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWFkZC10by1jYXJ0KCk7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFkZC10by1jYXJ0LWV4dGVuZGVkKCRuYW1lOiAnLmFkZC10by1jYXJ0LWV4dGVuZGVkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgLmFkZC10by1jYXJ0X19xdWFudGl0eS0tZXh0ZW5kZWQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktYWRkLXRvLWNhcnQtZXh0ZW5kZWQoKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXZhaWxhYmlsaXR5KCRuYW1lOiAnLmF2YWlsYWJpbGl0eS1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiByZW0oMTUpIDA7XG5cbiAgICAgICAgJi0tcGRwIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYXRhbG9nLWxpc3QsXG4gICAgICAgICYtLXNob3BwaW5nLWxpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcHJvZHVjdC1jYXJkIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIG1hcmdpbjogcmVtKDYpIDAgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICAmLWljb24ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmVlbi0xO1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSg0KTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHJlbSgzKTtcblxuICAgICAgICAgICAgICAgICYubm90LWF2YWlsYWJsZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1yZWQtMTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLnBhcnRpYWxseS1hdmFpbGFibGUge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3IteWVsbG93LTE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnRcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktYXZhaWxhYmlsaXR5O1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYW5uZXIoJG5hbWU6ICcuYmFubmVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgaGVpZ2h0OiByZW0oMjAwKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDEwKTtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICBoZWlnaHQ6IHJlbSg0NTApO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDMwKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1lZGl1bSB7XG4gICAgICAgICAgICBoZWlnaHQ6IHJlbSg0MDApO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiByZW0oMjAwKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgIGhlaWdodDogcmVtKDM0MCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYXRlZ29yeSB7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG5cbiAgICAgICAgICAgIC5ncmlkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiByZW0oMTgwKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWF4KCR4eGwpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3VjY2VzcyB7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMTUpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiByZW0oNDUwKTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oNDApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY29sb3Itc2Vjb25kIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW0oMzApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3VjY2VzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IHJlbSgyMCkgcmVtKDE1KSByZW0oMjYpO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMjYpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgzMCk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogZncobWVkaXVtKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgxMCk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgzMCk7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgzMCk7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDEzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTYpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgyNik7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgxOCk7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDM1KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3VidGl0bGUge1xuICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkc2V0dGluZy1mb250LWZhbWlseTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogZncobWVkaXVtKTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMzgpO1xuICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtKDQwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWNjZXNzLXRpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDMyKTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMzQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDExKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgzMik7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0oNTApO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oNTUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3VjY2Vzcy10ZXh0IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE4KTtcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiByZW0oMC4zKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDIyKTtcbiAgICAgICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogcmVtKDAuNCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktYmFubmVyO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmFuZC1pdGVtKCRuYW1lOiAnLmJyYW5kLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lcntcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBoZWlnaHQ6IHJlbSg2MCk7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiByZW0oNjApO1xuXG4gICAgICAgICAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZXtcbiAgICAgICAgICAgIG1heC13aWR0aDogcmVtKDE1NSk7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiByZW0oNjApO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWF4KCRzbS1tYXgpe1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1icmFuZC1pdGVtKCk7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWIoJG5hbWU6ICcuYnJlYWRjcnVtYicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDE1KTtcblxuICAgICAgICAmLS1wcm9ncmVzcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiByZW0oMTYpIDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9LXN0ZXAge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjUlO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgcmVtKDI5KTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcHJvZ3Jlc3Mtc3RlcCxcbiAgICAgICAgJi0tcHJvZ3Jlc3MtY29tcGxldGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTgpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIG1hcmdpbjogMCByZW0oMjkpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcHJvZ3Jlc3MtY29tcGxldGUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgIC5icmVhZGNydW1iLXN0ZXBfX2xpbmsge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiByZW0oNCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1tYiB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMjUpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWF4KCRsZy1tYXgpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWJyZWFkY3J1bWI7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbnRlbnQtY29sbGFwc2VyKCRuYW1lOiAnLmNvbnRlbnQtY29sbGFwc2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tZnVsbC12aXNpYmxlIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250YWluZXIge1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X190cmlnZ2VyLWhvbGRlciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiByZW0oMjIwKTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogcmVtKDgwKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIHJlbSgtNTApIHJlbSg4MCkgMCAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZDo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgcmVtKC01MCkgcmVtKDgwKSAwICRzZXR0aW5nLWNvbG9yLWdyYXktNztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RyaWdnZXItaG9sZGVyIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oMjYpO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IHJlbSgyNik7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItZ3JheS03O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb250ZW50LWNvbGxhcHNlcigpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb3B5cmlnaHQtYnVpbGQtd2l0aCgkbmFtZTogJy5jb3B5cmlnaHQtYnVpbGQtd2l0aCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZvbnQ6IGZ3KGJvbGQpIHJlbSgxMikvcmVtKDE1KSAkc2V0dGluZy1mb250LWZhbWlseTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IHJlbSgwLjY3KTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgcGFkZGluZy10b3A6IHJlbSgxOSk7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oMjEpO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHJlbSgxOCk7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogcmVtKDEyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvcHlyaWdodC1idWlsZC13aXRoKCk7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWN1c3RvbS1zZWxlY3QoJG5hbWU6ICcuY3VzdG9tLXNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRzZXR0aW5nLWJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgICBib3JkZXI6IHJlbSgxKSBzb2xpZCAkc2V0dGluZy1jb2xvci1ncmF5LTE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS01O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBmb250OiBmdyhyZWd1bGFyKSByZW0oMTUpL3JlbSg0NikgJHNldHRpbmctZm9udC1mYW1pbHk7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIHJlbSg0NSkgMCByZW0oMjApO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgcmVtKDQ1KSAwIHJlbSgyMCk7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IHJlbSgyMSk7XG4gICAgICAgICAgICB3aWR0aDogcmVtKDEyKTtcbiAgICAgICAgICAgIGhlaWdodDogcmVtKDcpO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICByaWdodDogcmVtKDIxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpZmZlcmVudC1tb2ItY2FyZXQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NhcmV0IHtcbiAgICAgICAgICAgICAgICB3aWR0aDogcmVtKDcpO1xuICAgICAgICAgICAgICAgIGhlaWdodDogcmVtKDExKTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHJlbSgxMik7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogcmVtKDcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdGVybmF0aXZlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VsZWN0IHtcbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktODtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgxMSk7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgzMCk7XG4gICAgICAgICAgICAgICAgZm9udDogZncobm9ybWFsKSByZW0oMTUpICRzZXR0aW5nLWZvbnQtZmFtaWx5O1xuICAgICAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiByZW0oMC42KTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIHJlbSgyMikgMCByZW0oMTIpO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNDtcbiAgICAgICAgICAgICAgICAgICAgZm9udDogZncocmVndWxhcikgcmVtKDE1KSAkc2V0dGluZy1mb250LWZhbWlseTtcbiAgICAgICAgICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IHJlbSgwLjYpO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIHJlbSgzMCkgMCByZW0oMTgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NhcmV0IHtcbiAgICAgICAgICAgICAgICB3aWR0aDogcmVtKDcpO1xuICAgICAgICAgICAgICAgIGhlaWdodDogcmVtKDExKTtcbiAgICAgICAgICAgICAgICByaWdodDogcmVtKDEwKTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IHJlbSgxMyk7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiByZW0oNyk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogcmVtKDQpO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkocmVtKC0yKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY29tcGFueS1zd2l0Y2hlciB7XG4gICAgICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb25fX3JlbmRlcmVkIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiByZW0oMzApICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib2xke1xuICAgICAgICAgICAgI3skbmFtZX1fX3NlbGVjdCxcbiAgICAgICAgICAgIC5zZWxlY3QyLXNlbGVjdGlvbl9fcmVuZGVyZWQge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhib2xkKTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IHJlbSg2KTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiByZW0oMTYpO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgxNSk7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgxOCk7XG4gICAgICAgICAgICAgICAgY29sb3I6JHNldHRpbmctY29sb3ItZ3JheS04O1xuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBpbml0aWFsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgI3skbmFtZX1fX2NhcmV0IHtcbiAgICAgICAgICAgICAgICByaWdodDogcmVtKDQpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWShyZW0oMSkpO1xuXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCwmLS1xdWFudGl0eSB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VsZWN0IHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgxNCk7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgzOCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KG1lZGl1bSk7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE0KTtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KHJlZ3VsYXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NhcmV0IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiByZW0oOSk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogcmVtKDUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1vYmlsZS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlbGVjdCB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZWxlY3Qge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWFyZ2luLWJvdHRvbSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMjEpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvcHBpbmctbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0oMTIpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJHhsKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHJlbSgxMzIpO1xuICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxMzJweCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saWdodCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VsZWN0LFxuICAgICAgICAgICAgLnNlbGVjdDItc2VsZWN0aW9uX19yZW5kZXJlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItZ3JheS03O1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jYXJldCB7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IHJlbSgxMCk7XG4gICAgICAgICAgICAgICAgd2lkdGg6IHJlbSg4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXF1YW50aXR5IHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb25fX3JlbmRlcmVkIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1ncmF5LTE7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiByZW0oMzgpO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5zZWxlY3RfX2NhcmV0IHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuc2VsZWN0Mi1yZXN1bHRzX19vcHRpb24ge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgICAgICAgICAmW2FyaWEtc2VsZWN0ZWQ9J3RydWUnXSB7XG4gICAgICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICAmLS1xdWljay1vcmRlci1wYWdlIHtcbiAgICAgICAgICAgIC5zZWxlY3QyLXNlbGVjdGlvbl9fcmVuZGVyZWQge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS04O1xuICAgICAgICAgICAgICAgIGhlaWdodDogcmVtKDIwKTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMTkpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogcmVtKDIwKSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdDIoJG5hbWU6ICcuc2VsZWN0MicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtc2VsZWN0aW9uX19yZW5kZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRzZXR0aW5nLWJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgICBib3JkZXI6IHJlbSgxKSBzb2xpZCAkc2V0dGluZy1jb2xvci1ncmF5LTk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS01O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBmb250OiBmdyhyZWd1bGFyKSByZW0oMTUpL3JlbSg0NikgJHNldHRpbmctZm9udC1mYW1pbHk7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIHJlbSg0NSkgMCByZW0oMjApO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IHJlbSgzMCk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtKDMwKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtc2VsZWN0aW9uX19hcnJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1oaWRkZW4tYWNjZXNzaWJsZSB7XG4gICAgICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgICAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgICAgICAgICAgY2xpcC1wYXRoOiBpbnNldCg1MCUpO1xuICAgICAgICAgICAgaGVpZ2h0OiByZW0oMSk7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHdpZHRoOiByZW0oMSk7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1jb250YWluZXIge1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWFsdGVybmF0aXZlIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfS1zZWxlY3Rpb25fX3JlbmRlcmVkIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS04O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgxNSk7XG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMzApO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IHJlbSgzMCk7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhub3JtYWwpO1xuICAgICAgICAgICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogcmVtKDAuNik7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgcmVtKDIyKSAwIHJlbSgxMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgI3skbmFtZX0tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiByZW0oMTEpIDAgcmVtKDEyKSByZW0oMTkpO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwIDAgJHNldHRpbmctYm9yZGVyLXJhZGl1cyAkc2V0dGluZy1ib3JkZXItcmFkaXVzO1xuICAgICAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAwIHJlbSgxOCkgcmVtKDE4KSAwICRzZXR0aW5nLWNvbG9yLXNoYWRvdy0xLCAwIHJlbSgzKSByZW0oMykgMCAkc2V0dGluZy1jb2xvci1zaGFkb3ctMTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAjeyRuYW1lfS1yZXN1bHRzX19vcHRpb24ge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgxMyk7XG5cbiAgICAgICAgICAgICAgICAgICAgJlthcmlhLXNlbGVjdGVkPSd0cnVlJ10ge1xuICAgICAgICAgICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zbWFsbCwmLS1xdWFudGl0eSB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0tc2VsZWN0aW9uX19yZW5kZXJlZCB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE1KTtcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgxNik7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IHJlbSg4KSByZW0oMzApIHJlbSg4KSByZW0oMTEpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICN7JG5hbWV9LXJlc3VsdHNfX29wdGlvbiB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRlZmF1bHQge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9LXNlbGVjdGlvbl9fcmVuZGVyZWQge1xuICAgICAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiByZW0oNDgpO1xuICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtKDQ4KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb25fX3JlbmRlcmVkIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItZ3JheS03O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuXG4gICAgICAgICAgICAmLS1xdWFudGl0eSB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiByZW0oNSkgcmVtKDMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtZHJvcGRvd24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZHJvcGRvd247XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW0oMTUpIHJlbSgyMCkgcmVtKDE1KSByZW0oMTUpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJHNldHRpbmctYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCByZW0oMTgpIHJlbSgxOCkgMCAkc2V0dGluZy1jb2xvci1zaGFkb3ctMSwgMCByZW0oMykgcmVtKDMpIDAgJHNldHRpbmctY29sb3Itc2hhZG93LTE7XG4gICAgICAgICAgICBtaW4td2lkdGg6IHJlbSgxNDApO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1zZWFyY2gtLWRyb3Bkb3duLnNlbGVjdDItc2VhcmNoLS1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLXJlc3VsdHMge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLXJlc3VsdHNfX29wdGlvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS0zO1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTUpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuODc7XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogcmVtKDAuMik7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDAgMCByZW0oMjcpO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJlthcmlhLXNlbGVjdGVkXSB7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmW2FyaWEtc2VsZWN0ZWQ9J3RydWUnXSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IHJlbSgyKSBzb2xpZCAkc2V0dGluZy1jb2xvci1ncmF5LTM7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IHJlbSgyKSBzb2xpZCAkc2V0dGluZy1jb2xvci1ncmF5LTM7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiByZW0oMTApO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IHJlbSg2KTtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiByZW0oOSk7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IHJlbSgzKTtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkW2FyaWEtc2VsZWN0ZWRdIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTM7XG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTU7XG4gICAgICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jdXN0b20tc2VsZWN0KCk7XG5AaW5jbHVkZSBzaG9wLXVpLXNlbGVjdDIoKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLmRpc3BsYXktYWRkcmVzcyB7XG4gICAgJi0tc3VtbWFyeSB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDE0KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgyMCk7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTUpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgyMik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19uYW1lIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KG1lZGl1bSk7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTU7XG4gICAgfVxuXG4gICAgJl9fYm90dG9tIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc3VtbWFyeSB7XG4gICAgICAgICAgICBtYXJnaW46IHJlbSgxNCkgMCAwO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZm9vdGVyLXRleHQoJG5hbWU6ICcuZm9vdGVyLXRleHQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBoMSwgaDIsIGgzLCBoNCwgaDUge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDI0KTtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtKDMwKTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogZncobm9ybWFsKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJiB7IGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTQ7IH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgZm9vdGVyLXRleHQoKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaWNvbi10b29sdGlwKCRuYW1lOiAnLmljb24tdG9vbHRpcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICRzcGFjaW5nLXVuZGVyLXRvb2x0aXA6IHJlbSgxMCk7XG5cbiAgICAgICAgJl9fdG9vbHRpcCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHBoYS03O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgIGZvbnQ6IGZ3KG1lZGl1bSkgcmVtKDEwKSAkc2V0dGluZy1mb250LWZhbWlseTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW0oNykgcmVtKDE0KTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRzZXR0aW5nLWJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICBib3R0b206IGNhbGMoMTAwJSArICN7JHNwYWNpbmctdW5kZXItdG9vbHRpcH0pO1xuICAgICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tIGNlbnRlcjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSBzY2FsZSgwKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0pO1xuXG4gICAgICAgICAgICAkYm9yZGVyLWFuZ2xlLXNpemU6IHJlbSgzKTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiBzb2xpZCAkYm9yZGVyLWFuZ2xlLXNpemUgJHNldHRpbmctY29sb3ItYWxwaGEtNztcbiAgICAgICAgICAgICAgICBib3JkZXItbGVmdDogc29saWQgJGJvcmRlci1hbmdsZS1zaXplICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDogc29saWQgJGJvcmRlci1hbmdsZS1zaXplICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRib3JkZXItYW5nbGUtc2l6ZX0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfTpob3ZlciAmIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgc2NhbGUoMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktaWNvbi10b29sdGlwO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gaW5wdXQtdGV4dC1jb3B5KCRuYW1lOiAnLmlucHV0LXRleHQtY29weScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1ncmF5LTk7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgcGFkZGluZzogcmVtKDUpIHJlbSg4MCkgcmVtKDUpIHJlbSgyMCk7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAuY29weS10by1jbGlwYm9hcmQgYnV0dG9uIHtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBpbnB1dC10ZXh0LWNvcHk7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxvZ28oJG5hbWU6ICcubG9nbycpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJi0tY2hlY2tvdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSgxNSk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMTUpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJHhsKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtKC0xMCk7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKC0xMCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG5cbiAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogNTRweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1sb2dvKCk7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vZGFsLXdpbmRvdygkbmFtZTogJy5tb2RhbC13aW5kb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB6LWluZGV4OiAyMDAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gICAgICAgIHRyYW5zaXRpb246IHZpc2liaWxpdHkgMHMgbGluZWFyIDAuMjVzLCBvcGFjaXR5IDAuMjVzIDBzLCB0cmFuc2Zvcm0gMC4yNXM7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICZfX292ZXJsYXkge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogdmlzaWJpbGl0eSAwcyBsaW5lYXIgMC4yNXMsIG9wYWNpdHkgMC4yNXMgMHMsIHRyYW5zZm9ybSAwLjI1cztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX292ZXJsYXlfYmx1ciB7XG4gICAgICAgICAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoNXB4KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgICAgICB3aWR0aDogODAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDgwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKDE5MjBweCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgICAgICB3aWR0aDogNjAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDgwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS0xMTtcblxuICAgICAgICAgICAgLmhlYWRsaW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3RhcnQ7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDI0KTtcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlLWJ1dHRvbi1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG5cbiAgICAgICAgICAgIC5jbG9zZS1idXR0b24ge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAxKSA5MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aXZlIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IHZpc2liaWxpdHkgMHMgbGluZWFyIDBzLCBvcGFjaXR5IDAuMjVzIDBzLCB0cmFuc2Zvcm0gMC4yNXM7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1tZWRpdW0ge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiByZW0oOTgwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250YWluZXIge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogcmVtKDcwMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktbW9kYWwtd2luZG93KCk7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tZm9vdGVyLWl0ZW0oJG5hbWU6ICcubmF2aWdhdGlvbi1mb290ZXItaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnLW1pbikge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1heCgkc20tbWF4KSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgIC5saXN0LS1mb290ZXJ7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHJlbSgyNik7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtKDApO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgxNik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5saW5rLS1mb290ZXJ7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTYpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tMmNvbCAubGlzdC0tZm9vdGVyIHtcbiAgICAgICAgICAgIGNvbHVtbi1jb3VudDogMztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLTJjb2wgLmxpc3RfX2l0ZW0ge1xuXG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiByZW0oMTUpO1xuXG4gICAgICAgICAgICAmOm50aC1jaGlsZCgzbikge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktbmF2aWdhdGlvbi1mb290ZXItaXRlbTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1tYXgoJHNtLW1heCkge1xuICAgICAgICAgICAgJi0tZm9vdGVye1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuMnMgZWFzZS1vdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktbmF2aWdhdGlvbi1saXN0O1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXNpZGViYXIoJG5hbWU6ICcubmF2aWdhdGlvbi1zaWRlYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyOiByZW0oMSkgc29saWQgJHNldHRpbmctY29sb3ItZ3JheS0xO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbWQpIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogcmVtKDMyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjY291bnQge1xuICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbSgxNikgMCByZW0oMTYpIHJlbSg4KTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHJlbSgyKTtcblxuICAgICAgICAgICAgJi0tYWNjb3VudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhIHByaW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktbmF2aWdhdGlvbi1zaWRlYmFyKCk7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tc2lkZWJhci1pdGVtKCRuYW1lOiAnLm5hdmlnYXRpb24tc2lkZWJhci1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2ljb24ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYWJlbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW0oMTApIHJlbSgxMyk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS4zZW07XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgxNyk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogZncobWVkaXVtKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTI7XG5cbiAgICAgICAgICAgICYtLWFjY291bnQge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCByZW0oLTIwKTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDAgMCByZW0oMTkpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogMCByZW0oMTUpIDAgMDtcbiAgICAgICAgICAgIG1pbi13aWR0aDogcmVtKDUwKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICAgICAgJi0tYWNjb3VudCB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiByZW0oNDUpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcblxuICAgICAgICAgICAgJi0tYWNjb3VudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogcmVtKDE1KSByZW0oMTMpIHJlbSgxNSkgcmVtKDEwKTtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiByZW0oMSkgc29saWQgJHNldHRpbmctY29sb3ItZ3JheS0xO1xuICAgICAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1uYXZpZ2F0aW9uLXNpZGViYXItaXRlbSgpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gbm9zY3JpcHQtd2FybmluZygkbmFtZTogJy5ub3NjcmlwdC13YXJuaW5nJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkc2V0dGluZy1mb250LXNpemUtYmFzZSArIDE7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJHNldHRpbmctZm9udC1mYW1pbHk7XG4gICAgICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIDFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlLTE7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGluY2x1ZGUgbm9zY3JpcHQtd2FybmluZygpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4ucGFnZS1pbmZvIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTEwO1xuICAgIHBhZGRpbmc6IHJlbSg0MCkgMCByZW0oMTApO1xuXG4gICAgJi0tY2hlY2tvdXQge1xuICAgICAgICBwYWRkaW5nOiByZW0oMTUpIDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3gtc2hhZG93OiAwIHJlbSgxMCkgcmVtKDE4KSAwICRzZXR0aW5nLWNvbG9yLWFscGhhLTIsIDAgcmVtKDMpIHJlbSgzKSAwICRzZXR0aW5nLWNvbG9yLWFscGhhLTI7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRtZC1tYXggLTEpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktMTA7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW0oMTQpIDAgcmVtKDEyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3RpdGxlIHtcbiAgICAgICAgcGFkZGluZy10b3A6IHJlbSg0KTtcbiAgICAgICAgZm9udDogZncoYm9sZCkgcmVtKDIyKS9yZW0oMjYpICRzZXR0aW5nLWZvbnQtZmFtaWx5O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbWQtbWF4IC0xKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMjgpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgzNik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAbWVkaWEgcHJpbnQge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFuZWwtaW5mby1pdGVtKCRuYW1lOiAnLnBhbmVsLWluZm8taXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkdGFibGV0TGFuZHNjYXBlKSB7XG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTUpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KG5vcm1hbCk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtKDE4KTtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiByZW0oMTUpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktODtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1wYW5lbC1pbmZvLWl0ZW07XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlLW1vZGUoJG5hbWU6ICcucHJpY2UtbW9kZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTI7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiByZW0oMC4yKTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgxMik7XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogcmVtKDAuMSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWNvbmRhcnkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1vYmlsZS1zbWFsbCB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgxNCk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgxNik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogcmVtKDgpO1xuXG4gICAgICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiByZW0oNCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW1vYmlsZS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiByZW0oNCk7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogcmVtKDgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1wcmljZS1tb2RlKCk7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS10b3RhbC1jYWxjdWxhdG9yKCRuYW1lOiAnLnByaWNlLXRvdGFsLWNhbGN1bGF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMS4yNTtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHByaWNlLXRvdGFsLWNhbGN1bGF0b3I7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2Utd2l0aC1yZWFsdGltZS1wcmljZScpIHtcbiAgICAkbmFtZTogJjtcblxuICAgICYtLWNhcnQge1xuICAgICAgICBtYXJnaW46IDAgMCAkc2V0dGluZy1ncmlkLXNwYWNlO1xuICAgIH1cblxuICAgICYtLXN1bW1hcnkge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgJl9fYW1vdW50IHtcbiAgICAgICAgZm9udC1zaXplOiByZW0oMTYpO1xuICAgICAgICBmb250LXdlaWdodDogZncobWVkaXVtKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IG1hcF9nZXQoJHNldHRpbmctZm9udC1saW5lLWhlaWdodCwgMik7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTQ7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FydCB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgxOCk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogZncoYm9sZCk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxvd2VyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmVlbi0xO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1yZWQtMTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE1KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTI7XG4gICAgICAgICAgICBmb250LXdlaWdodDogZncocmVndWxhcik7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYjeyRuYW1lfV9fYW1vdW50LS1jYXRhbG9nLWxpc3Qge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbWQpIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHJlbSg0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19tb2RlIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS00O1xuICAgICAgICBmb250LXNpemU6IHJlbSgxMik7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhyZWd1bGFyKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgxMik7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiByZW0oNSk7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgxMik7XG4gICAgICAgIH1cblxuXG4gICAgICAgICYtLWNhcnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4ucHJpdmFjeS1uYXZpZ2F0aW9uIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHBhZGRpbmctdG9wOiByZW0oMTApO1xuICAgIHBhZGRpbmctbGVmdDogJHNldHRpbmctZ3JpZC1zcGFjZTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1ncmlkLXNwYWNlO1xuICAgIG9yZGVyOiAyO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDI1JTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgfVxuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIHBhZGRpbmc6IDAgcmVtKDgpO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiA1cHg7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIHN0eWxlbGludC1kaXNhYmxlICovXG5cbiRwYXJlbnQ6ICcucHJvZHVjdC1jYXJkJztcbiRjYXRhbG9nLWxpbmUtaGVpZ2h0OiAyNTtcbiRjYXRhbG9nLWxpbmVzLXNob3duOiAyO1xuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQtZXh0ZW5kZWQoJG5hbWU6ICcucHJvZHVjdC1jYXJkLWV4dGVuZGVkJykge1xuICAgICN7JHBhcmVudH0ge1xuICAgICAgICAuYWRkLXRvLWNhcmQtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgxNSk7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiByZW0oJGNhdGFsb2ctbGluZS1oZWlnaHQpO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IHJlbSg2KTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oNik7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY21zLFxuICAgICAgICAgICAgJi0tc2xpZGVyIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX292ZXJsYXkge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTUpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgkY2F0YWxvZy1saW5lLWhlaWdodCk7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAgICAgICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6ICRjYXRhbG9nLWxpbmVzLXNob3duO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogcmVtKCRjYXRhbG9nLWxpbmVzLXNob3duICogJGNhdGFsb2ctbGluZS1oZWlnaHQpO1xuICAgICAgICAgICAgbWluLWhlaWdodDogcmVtKCRjYXRhbG9nLWxpbmVzLXNob3duICogJGNhdGFsb2ctbGluZS1oZWlnaHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwZXJhdG9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS0xMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2F2YWlsYWJpbGl0eS1kYXRlLWJveCB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgxNCk7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiByZW0oMjQpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtY2FyZC1leHRlbmRlZCgpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1pbWFnZS13aWR0aDogcmVtKDc4KTtcbiRwcm9kdWN0LWltYWdlLWxlZnQtaW5kZW50OiByZW0oMzUpO1xuJGRyb3Bkb3duLXdpZHRoOiBjYWxjKDEwMCUgKyAje3JlbSg0KX0pO1xuJGRyb3Bkb3duLXRvcC1pbmRlbnQ6IGNhbGMoMTAwJSArICN7cmVtKDE1KX0pO1xuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcmQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlcjogcmVtKDIpIHNvbGlkICRzZXR0aW5nLWNvbG9yLWdyYXktNztcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJHNldHRpbmctYm9yZGVyLXJhZGl1cztcbiAgICAgICAgcGFkZGluZzogcmVtKDEyKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDEwKTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJG1kKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiByZW0oMjIpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgyMCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgJi0taW1hZ2Uge1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRzZXR0aW5nLWJvcmRlci1yYWRpdXMgMCAwICRzZXR0aW5nLWJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWltYWdlLXdpZHRoO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtaW1hZ2Utd2lkdGg7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJG1kKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyMiU7XG4gICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMjIlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tdG90YWwge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDQwJTtcbiAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiA0MCU7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICN7JG5hbWV9ICYge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHNldHRpbmctZ3JpZC1zcGFjZSAqIDJ9ICsgI3skc2V0dGluZy1ncmlkLXNwYWNlfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbnRlbnQge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDYwJTtcbiAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiA2MCU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IHJlbSg4KTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDEyKTtcbiAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gI3skcHJvZHVjdC1pbWFnZS13aWR0aH0pO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogY2FsYygxMDAlIC0gI3skcHJvZHVjdC1pbWFnZS13aWR0aH0pO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRtZCkge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogNzglO1xuICAgICAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDc4JTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiByZW0oMzYpO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDI4KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3BwaW5nLWxpc3Q6bm90KCYtLWltYWdlKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IHJlbSgyMCk7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oMjgpO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogcmVtKDI4KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcblxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDIwKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICAmOm5vdCgjeyRuYW1lfV9fY29sLS1jb250ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLXRpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiByZW0oMTYpO1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTQpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KGJvbGQpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiByZW0oMjgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5uZXIge1xuICAgICAgICAgICAgJi0tZnVsbC1oZWlnaHQge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tdG90YWwge1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aW9ucyB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IHJlbSg2KTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgxNCk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogZncobWVkaXVtKTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS01O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDIwKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvcHBpbmctbGlzdC1hbHRlcm5hdGl2ZSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTIpO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgxNik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiByZW0oMTQpO1xuICAgICAgICAgICAgaGVpZ2h0OiByZW0oMTQpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHJlbSg0KTtcbiAgICAgICAgICAgIHRleHQtaW5kZW50OiByZW0oLTk5OTkpO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbG9yLXByZXZpZXcge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTMpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KG1lZGl1bSk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS01O1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogcmVtKDIxKTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMjEpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sb3ItcHJldmlldy1kZWNvcmF0aW9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiByZW0oMyk7XG4gICAgICAgICAgICB3aWR0aDogcmVtKDE1KTtcbiAgICAgICAgICAgIGhlaWdodDogcmVtKDE1KTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgIGJvcmRlcjogcmVtKDEpIHNvbGlkICRzZXR0aW5nLWNvbG9yLWdyYXktMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2F2YWlsYWJsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhtZWRpdW0pO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSg4KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrYm94IHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi1jb2wge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFscGhhLTI7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiByZW0oMTIpO1xuXG4gICAgICAgICAgICAgICAgJi0tc2hvcHBpbmctbGlzdCB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG5cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWxwaGEtMjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oMjApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fcXVhbnRpdHktaG9sZGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oMTYpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgxMyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS00O1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLXRpdGxlIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS01O1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhtZWRpdW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLWNhcnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiByZW0oNDgpO1xuICAgICAgICAgICAgcmlnaHQ6IHJlbSgzMik7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogcmVtKDMyKTtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fcmVtb3ZlLWJ1dHRvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0oLTQ4KTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JlbW92ZS1idXR0b24tdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZHJvcGRvd24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogcmVtKC0yKTtcbiAgICAgICAgICAgIHdpZHRoOiAkZHJvcGRvd24td2lkdGg7XG4gICAgICAgICAgICB0b3A6ICRkcm9wZG93bi10b3AtaW5kZW50O1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnNlbGVjdDItc2VsZWN0aW9uX19yZW5kZXJlZCxcbiAgICAgICAgICAgIC5jdXN0b20tc2VsZWN0X19zZWxlY3Qge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvcHBpbmctbGlzdC1hdmFpbGFibGUge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IHJlbSg3NSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNoZWNrb3V0IHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgxNSk7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb2wge1xuICAgICAgICAgICAgICAgICYtLWltYWdlIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE3JTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMTclO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJi0tdG90YWwge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiAyMCU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAjeyRuYW1lfSAmIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogI3skc2V0dGluZy1ncmlkLXNwYWNlICogMn07XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLS1jb250ZW50IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDgwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogODAlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJi0tZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG5cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDgzJTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogODMlO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IHJlbSgyMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDE1KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiByZW0oLTEwKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNoZWNrb3V0LWFkZHJlc3Mge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDEwMCk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMjApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29sIHtcbiAgICAgICAgICAgICAgICAmLS10b3RhbCB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiA2MCU7XG4gICAgICAgICAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDYwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAjeyRuYW1lfV9faW5uZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLS1jb250ZW50IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDQwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogNDAlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3JkZXItZGV0YWlsIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb2wge1xuICAgICAgICAgICAgICAgICYtLWltYWdlIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRwcm9kdWN0LWltYWdlLWxlZnQtaW5kZW50O1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiByZW0oNSk7XG5cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRtZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1ncmlkLXNwYWNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJi0tdG90YWwge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMzAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiAzMCU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAjeyRuYW1lfSAmIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogI3skc2V0dGluZy1ncmlkLXNwYWNlICogMn07XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLS1jb250ZW50IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDcwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogNzAlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJi0tZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gI3skcHJvZHVjdC1pbWFnZS13aWR0aH0gLSAjeyRwcm9kdWN0LWltYWdlLWxlZnQtaW5kZW50fSk7XG4gICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogY2FsYygxMDAlIC0gI3skcHJvZHVjdC1pbWFnZS13aWR0aH0gLSAjeyRwcm9kdWN0LWltYWdlLWxlZnQtaW5kZW50fSk7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcblxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJG1kKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogNzglO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiA3OCU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogcmVtKDIwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oMTUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHJlbSgtMTApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZml4ZWQtaW5wdXQge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiByZW0oMTM4KTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgzMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3BwaW5nLWxpc3QtYWx0ZXJuYXRpdmUge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDEwKTtcblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbCB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDY5JTtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDY5JTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDc4JTtcbiAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiA3OCU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJi0taW1hZ2Uge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMzElO1xuICAgICAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDMxJTtcblxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjIlO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiAyMiU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLS1jb250ZW50IHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogNTglO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiA1OCU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLS10b3RhbCB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDQyJTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogNDIlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtY2FyZC1pdGVtKCk7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWl0ZW0tYXR0cmlidXRlcygkbmFtZTogJy5wcm9kdWN0LWl0ZW0tYXR0cmlidXRlcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiByZW0oMTQpO1xuICAgICAgICAgICAgaGVpZ2h0OiByZW0oMTQpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHJlbSg0KTtcbiAgICAgICAgICAgIHRleHQtaW5kZW50OiAtOTk5OXB4O1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgcHJvZHVjdC1pdGVtLWF0dHJpYnV0ZXMoKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWltYWdlKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZzogcmVtKDQpO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbSgzNikgcmVtKDQpIHJlbSgyOCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHBoYS0yO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJHNldHRpbmctYm9yZGVyLXJhZGl1cyAwIDAgJHNldHRpbmctYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25vLWltYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTg7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSg0MCk7XG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN1bW1hcnkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiByZW0oMjgpO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oMjApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvcHBpbmctbGlzdCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IHJlbSgyOCk7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IHJlbSgyMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWltYWdlKCk7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1vcHRpb25zKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1vcHRpb25zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luLXRvcDogcmVtKDE2KTtcblxuICAgICAgICAmLS1zdW1tYXJ5IHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSg0KTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSgxNik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDEzKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTM7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tb3B0aW9ucygpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tdmFyaWFudC1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tdmFyaWFudC1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDEzKTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhtZWRpdW0pO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHJlbSg2KTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogcmVtKDI0KTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgxNCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRtZCkge1xuICAgICAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tdmFyaWFudC1zZWxlY3RvcigpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbS1hdHRyaWJ1dGVzKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtLWF0dHJpYnV0ZXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW4tdG9wOiByZW0oMjApO1xuICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1heCgkbWQtbWF4KSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgdGQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNDtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogcmVtKDE1KTtcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtLWF0dHJpYnV0ZXMoKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvamVjdC1vcmRlci1jb25maWd1cmF0aW9uKCRuYW1lOiAnLnByb2plY3Qtb3JkZXItY29uZmlndXJhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbGlzdC1zdHlsZTogZGlzYztcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogcmVtKDE2KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtdG9nZ2xlIHtcbiAgICAgICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgICAgIC50b2dnbGVyLWFjY29yZGlvbl9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktcHJvamVjdC1vcmRlci1jb25maWd1cmF0aW9uO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9qZWN0LXJlcXVlc3QtbGFiZWwoJG5hbWU6ICcucHJvamVjdC1yZXF1ZXN0LWxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZ2FwOiByZW0oNSk7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6IG1heC1jb250ZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtKDMpO1xuXG4gICAgICAgICAgICAmLS10aXRsZSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyZWVuLTE7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBpIHtcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLXByb2plY3QtcmVxdWVzdC1sYWJlbDtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVhbnRpdHktY291bnRlcigkbmFtZTogJy5xdWFudGl0eS1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogcmVtKDgpIHJlbSgxMCk7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItZ3JheS03O1xuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgxNik7XG4gICAgICAgICAgICBmb250LXdlaWdodDogZncoNTAwKTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICB3aWR0aDogcmVtKDQ2KTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICZbdHlwZT1udW1iZXJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuICAgICAgICAgICAgJlt0eXBlPW51bWJlcl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgICAgICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJlt0eXBlPW51bWJlcl0ge1xuICAgICAgICAgICAgICAgIC1tb3otYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHdpZHRoOiByZW0oMjgpO1xuICAgICAgICAgICAgaGVpZ2h0OiByZW0oMjgpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJHNldHRpbmctYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCByZW0oMTApIHJlbSgxMCkgMCAkc2V0dGluZy1jb2xvci1zaGFkb3csIDAgcmVtKDMpIHJlbSgzKSAwICRzZXR0aW5nLWNvbG9yLXNoYWRvdztcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAwO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQpO1xuXG4gICAgICAgICAgICAmLS1kZWNyZW1lbnQ6OmJlZm9yZSxcbiAgICAgICAgICAgICYtLWluY3JlbWVudDo6YmVmb3JlLFxuICAgICAgICAgICAgJi0taW5jcmVtZW50OjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgICAgICAgICB3aWR0aDogcmVtKDkpO1xuICAgICAgICAgICAgICAgIGhlaWdodDogcmVtKDIpO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWdyYXktMztcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLS1pbmNyZW1lbnQ6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogcmVtKDIpO1xuICAgICAgICAgICAgICAgIGhlaWdodDogcmVtKDkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCByZW0oMykgcmVtKDMpIDAgJHNldHRpbmctY29sb3Itc2hhZG93O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItZ3JheS02O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWdyYXktNjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJpZ2h0LXNwYWNlIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogcmVtKDEwKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhcnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiByZW0oMTApO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oMTIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvcHBpbmctbGlzdCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogcmVtKDEwKTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oMTIpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDIwKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1xdWFudGl0eS1jb3VudGVyKCk7XG4iLCIubm9VaS10YXJnZXQsLm5vVWktdGFyZ2V0ICp7LXdlYmtpdC10b3VjaC1jYWxsb3V0Om5vbmU7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50Oy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbXMtdG91Y2gtYWN0aW9uOm5vbmU7dG91Y2gtYWN0aW9uOm5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94fS5ub1VpLXRhcmdldHtwb3NpdGlvbjpyZWxhdGl2ZX0ubm9VaS1iYXNlLC5ub1VpLWNvbm5lY3Rze3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxfS5ub1VpLWNvbm5lY3Rze292ZXJmbG93OmhpZGRlbjt6LWluZGV4OjB9Lm5vVWktY29ubmVjdCwubm9VaS1vcmlnaW57d2lsbC1jaGFuZ2U6dHJhbnNmb3JtO3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTt0b3A6MDtyaWdodDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7LW1zLXRyYW5zZm9ybS1vcmlnaW46MCAwOy13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjowIDA7LXdlYmtpdC10cmFuc2Zvcm0tc3R5bGU6cHJlc2VydmUtM2Q7dHJhbnNmb3JtLW9yaWdpbjowIDA7dHJhbnNmb3JtLXN0eWxlOmZsYXR9Lm5vVWktdHh0LWRpci1ydGwubm9VaS1ob3Jpem9udGFsIC5ub1VpLW9yaWdpbntsZWZ0OjA7cmlnaHQ6YXV0b30ubm9VaS12ZXJ0aWNhbCAubm9VaS1vcmlnaW57dG9wOi0xMDAlO3dpZHRoOjB9Lm5vVWktaG9yaXpvbnRhbCAubm9VaS1vcmlnaW57aGVpZ2h0OjB9Lm5vVWktaGFuZGxley13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47YmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47cG9zaXRpb246YWJzb2x1dGV9Lm5vVWktdG91Y2gtYXJlYXtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5ub1VpLXN0YXRlLXRhcCAubm9VaS1jb25uZWN0LC5ub1VpLXN0YXRlLXRhcCAubm9VaS1vcmlnaW57LXdlYmtpdC10cmFuc2l0aW9uOnRyYW5zZm9ybSAuM3M7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjNzfS5ub1VpLXN0YXRlLWRyYWcgKntjdXJzb3I6aW5oZXJpdCFpbXBvcnRhbnR9Lm5vVWktaG9yaXpvbnRhbHtoZWlnaHQ6MThweH0ubm9VaS1ob3Jpem9udGFsIC5ub1VpLWhhbmRsZXt3aWR0aDozNHB4O2hlaWdodDoyOHB4O3JpZ2h0Oi0xN3B4O3RvcDotNnB4fS5ub1VpLXZlcnRpY2Fse3dpZHRoOjE4cHh9Lm5vVWktdmVydGljYWwgLm5vVWktaGFuZGxle3dpZHRoOjI4cHg7aGVpZ2h0OjM0cHg7cmlnaHQ6LTZweDtib3R0b206LTE3cHh9Lm5vVWktdHh0LWRpci1ydGwubm9VaS1ob3Jpem9udGFsIC5ub1VpLWhhbmRsZXtsZWZ0Oi0xN3B4O3JpZ2h0OmF1dG99Lm5vVWktdGFyZ2V0e2JhY2tncm91bmQ6I0ZBRkFGQTtib3JkZXItcmFkaXVzOjRweDtib3JkZXI6MXB4IHNvbGlkICNEM0QzRDM7Ym94LXNoYWRvdzppbnNldCAwIDFweCAxcHggI0YwRjBGMCwwIDNweCA2cHggLTVweCAjQkJCfS5ub1VpLWNvbm5lY3Rze2JvcmRlci1yYWRpdXM6M3B4fS5ub1VpLWNvbm5lY3R7YmFja2dyb3VuZDojM0ZCOEFGfS5ub1VpLWRyYWdnYWJsZXtjdXJzb3I6ZXctcmVzaXplfS5ub1VpLXZlcnRpY2FsIC5ub1VpLWRyYWdnYWJsZXtjdXJzb3I6bnMtcmVzaXplfS5ub1VpLWhhbmRsZXtib3JkZXI6MXB4IHNvbGlkICNEOUQ5RDk7Ym9yZGVyLXJhZGl1czozcHg7YmFja2dyb3VuZDojRkZGO2N1cnNvcjpkZWZhdWx0O2JveC1zaGFkb3c6aW5zZXQgMCAwIDFweCAjRkZGLGluc2V0IDAgMXB4IDdweCAjRUJFQkVCLDAgM3B4IDZweCAtM3B4ICNCQkJ9Lm5vVWktYWN0aXZle2JveC1zaGFkb3c6aW5zZXQgMCAwIDFweCAjRkZGLGluc2V0IDAgMXB4IDdweCAjRERELDAgM3B4IDZweCAtM3B4ICNCQkJ9Lm5vVWktaGFuZGxlOmFmdGVyLC5ub1VpLWhhbmRsZTpiZWZvcmV7Y29udGVudDpcIlwiO2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7aGVpZ2h0OjE0cHg7d2lkdGg6MXB4O2JhY2tncm91bmQ6I0U4RTdFNjtsZWZ0OjE0cHg7dG9wOjZweH0ubm9VaS1oYW5kbGU6YWZ0ZXJ7bGVmdDoxN3B4fS5ub1VpLXZlcnRpY2FsIC5ub1VpLWhhbmRsZTphZnRlciwubm9VaS12ZXJ0aWNhbCAubm9VaS1oYW5kbGU6YmVmb3Jle3dpZHRoOjE0cHg7aGVpZ2h0OjFweDtsZWZ0OjZweDt0b3A6MTRweH0ubm9VaS12ZXJ0aWNhbCAubm9VaS1oYW5kbGU6YWZ0ZXJ7dG9wOjE3cHh9W2Rpc2FibGVkXSAubm9VaS1jb25uZWN0e2JhY2tncm91bmQ6I0I4QjhCOH1bZGlzYWJsZWRdIC5ub1VpLWhhbmRsZSxbZGlzYWJsZWRdLm5vVWktaGFuZGxlLFtkaXNhYmxlZF0ubm9VaS10YXJnZXR7Y3Vyc29yOm5vdC1hbGxvd2VkfS5ub1VpLXBpcHMsLm5vVWktcGlwcyAqey1tb3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubm9VaS1waXBze3Bvc2l0aW9uOmFic29sdXRlO2NvbG9yOiM5OTl9Lm5vVWktdmFsdWV7cG9zaXRpb246YWJzb2x1dGU7d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtYWxpZ246Y2VudGVyfS5ub1VpLXZhbHVlLXN1Yntjb2xvcjojY2NjO2ZvbnQtc2l6ZToxMHB4fS5ub1VpLW1hcmtlcntwb3NpdGlvbjphYnNvbHV0ZTtiYWNrZ3JvdW5kOiNDQ0N9Lm5vVWktbWFya2VyLXN1YntiYWNrZ3JvdW5kOiNBQUF9Lm5vVWktbWFya2VyLWxhcmdle2JhY2tncm91bmQ6I0FBQX0ubm9VaS1waXBzLWhvcml6b250YWx7cGFkZGluZzoxMHB4IDA7aGVpZ2h0OjgwcHg7dG9wOjEwMCU7bGVmdDowO3dpZHRoOjEwMCV9Lm5vVWktdmFsdWUtaG9yaXpvbnRhbHstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSw1MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSw1MCUpfS5ub1VpLXJ0bCAubm9VaS12YWx1ZS1ob3Jpem9udGFsey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSg1MCUsNTAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlKDUwJSw1MCUpfS5ub1VpLW1hcmtlci1ob3Jpem9udGFsLm5vVWktbWFya2Vye21hcmdpbi1sZWZ0Oi0xcHg7d2lkdGg6MnB4O2hlaWdodDo1cHh9Lm5vVWktbWFya2VyLWhvcml6b250YWwubm9VaS1tYXJrZXItc3Vie2hlaWdodDoxMHB4fS5ub1VpLW1hcmtlci1ob3Jpem9udGFsLm5vVWktbWFya2VyLWxhcmdle2hlaWdodDoxNXB4fS5ub1VpLXBpcHMtdmVydGljYWx7cGFkZGluZzowIDEwcHg7aGVpZ2h0OjEwMCU7dG9wOjA7bGVmdDoxMDAlfS5ub1VpLXZhbHVlLXZlcnRpY2Fsey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgwLC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGUoMCwtNTAlKTtwYWRkaW5nLWxlZnQ6MjVweH0ubm9VaS1ydGwgLm5vVWktdmFsdWUtdmVydGljYWx7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKDAsNTAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlKDAsNTAlKX0ubm9VaS1tYXJrZXItdmVydGljYWwubm9VaS1tYXJrZXJ7d2lkdGg6NXB4O2hlaWdodDoycHg7bWFyZ2luLXRvcDotMXB4fS5ub1VpLW1hcmtlci12ZXJ0aWNhbC5ub1VpLW1hcmtlci1zdWJ7d2lkdGg6MTBweH0ubm9VaS1tYXJrZXItdmVydGljYWwubm9VaS1tYXJrZXItbGFyZ2V7d2lkdGg6MTVweH0ubm9VaS10b29sdGlwe2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyOjFweCBzb2xpZCAjRDlEOUQ5O2JvcmRlci1yYWRpdXM6M3B4O2JhY2tncm91bmQ6I2ZmZjtjb2xvcjojMDAwO3BhZGRpbmc6NXB4O3RleHQtYWxpZ246Y2VudGVyO3doaXRlLXNwYWNlOm5vd3JhcH0ubm9VaS1ob3Jpem9udGFsIC5ub1VpLXRvb2x0aXB7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLDApO2xlZnQ6NTAlO2JvdHRvbToxMjAlfS5ub1VpLXZlcnRpY2FsIC5ub1VpLXRvb2x0aXB7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKDAsLTUwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgwLC01MCUpO3RvcDo1MCU7cmlnaHQ6MTIwJX0ubm9VaS1ob3Jpem9udGFsIC5ub1VpLW9yaWdpbj4ubm9VaS10b29sdGlwey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSg1MCUsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZSg1MCUsMCk7bGVmdDphdXRvO2JvdHRvbToxMHB4fS5ub1VpLXZlcnRpY2FsIC5ub1VpLW9yaWdpbj4ubm9VaS10b29sdGlwey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgwLC0xOHB4KTt0cmFuc2Zvcm06dHJhbnNsYXRlKDAsLTE4cHgpO3RvcDphdXRvO3JpZ2h0OjI4cHh9IiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW1wb3J0ICd+bm91aXNsaWRlci9kaXN0L25vdWlzbGlkZXIubWluLmNzcyc7XG5cbiRsaW5lLXdpZHRoOiAycHg7XG4kaGVpZ2h0LWhhbmRsZTogMTRweDtcbiR3aWR0aC1oYW5kbGU6IDE0cHg7XG5cbi5yYW5nZS1zbGlkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIG1hcmdpbjogMCBjYWxjKCR3aWR0aC1oYW5kbGUgLyAyKTtcblxuICAgIC5ub1VpLWJhc2Uge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoKCRoZWlnaHQtaGFuZGxlIC0gJGxpbmUtd2lkdGgpIC8gMikgMDtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgIC5ub1VpLWNvbm5lY3RzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS0yO1xuICAgICAgICBoZWlnaHQ6ICRsaW5lLXdpZHRoO1xuICAgICAgICBtYXJnaW46IDAgY2FsYygtI3skd2lkdGgtaGFuZGxlfSAvIDIpO1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgI3skd2lkdGgtaGFuZGxlfSk7XG4gICAgfVxuXG4gICAgLm5vVWktY29ubmVjdCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgfVxuXG4gICAgLm5vVWktaGFuZGxlIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSk7XG4gICAgICAgIHdpZHRoOiAkd2lkdGgtaGFuZGxlO1xuICAgICAgICBoZWlnaHQ6ICRoZWlnaHQtaGFuZGxlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiBjYWxjKCRoZWlnaHQtaGFuZGxlIC8gMik7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4zKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYubm9VaS1ob3Jpem9udGFsIHtcbiAgICAgICAgLm5vVWktaGFuZGxlIHtcbiAgICAgICAgICAgIHRvcDogMDtcblxuICAgICAgICAgICAgaHRtbDpub3QoW2Rpcj0ncnRsJ10pICYge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLShjYWxjKCR3aWR0aC1oYW5kbGUgLyAyKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIFNsaWRlciAqL1xuXG4uc2xpY2stc2xpZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1zLXRvdWNoLWFjdGlvbjogcGFuLXk7XG4gICAgdG91Y2gtYWN0aW9uOiBwYW4teTtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLnNsaWNrLWxpc3Qge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuXG4gICAgJi5kcmFnZ2luZyB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgY3Vyc29yOiBoYW5kO1xuICAgIH1cbn1cbi5zbGljay1zbGlkZXIgLnNsaWNrLXRyYWNrLFxuLnNsaWNrLXNsaWRlciAuc2xpY2stbGlzdCB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG59XG5cbi5zbGljay10cmFjayB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcblxuICAgICY6YmVmb3JlLFxuICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxuXG4gICAgLnNsaWNrLWxvYWRpbmcgJiB7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG59XG4uc2xpY2stc2xpZGUge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAxcHg7XG4gICAgW2Rpcj1cInJ0bFwiXSAmIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbiAgICBpbWcge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gICAgJi5zbGljay1sb2FkaW5nIGltZyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgICYuZHJhZ2dpbmcgaW1nIHtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuXG4gICAgLnNsaWNrLWluaXRpYWxpemVkICYge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAuc2xpY2stbG9hZGluZyAmIHtcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIH1cblxuICAgIC5zbGljay12ZXJ0aWNhbCAmIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgfVxufVxuLnNsaWNrLWFycm93LnNsaWNrLWhpZGRlbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2xpY2stY2Fyb3VzZWwgKCRuYW1lOiAnLnNsaWNrLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IHJlbSgzOTQpO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5LCAwLjVzKTtcblxuICAgICAgICAgICAgJi0taXMtaW5pdGVkIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEgcHJpbnQge1xuICAgICAgICAgICAgLnNsaWNrLXNsaWRlIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgJi5zbGljay1hY3RpdmUge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnNsaWNrLWxpc3Qge1xuICAgICAgICAgICAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuc2xpY2stdHJhY2sge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgLnNsaWNrLXNsaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDMzJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5zbGljay10cmFjayxcbiAgICAgICAgLnNsaWNrLWxpc3Qge1xuICAgICAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogJHNldHRpbmctZWZmZWN0LWRlZmF1bHQtZHVyYXRpb247XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNldHRpbmctZ3JpZC1zcGFjZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzZXR0aW5nLWdyaWQtc3BhY2U7XG5cbiAgICAgICAgICAgICYjeyRuYW1lfS0tZXF1YWwtaGVpZ2h0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogcmVtKC05KTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHJlbSgtOSk7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNldHRpbmctZ3JpZC1zcGFjZTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNldHRpbmctZ3JpZC1zcGFjZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcXVhbC1oZWlnaHQge1xuICAgICAgICAgICAgLnNsaWNrLXRyYWNrIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuc2xpY2stc2xpZGUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCByZW0oOSk7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCAkc2V0dGluZy1ncmlkLXNwYWNlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgID4gZGl2IHtcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYjeyRuYW1lfS0tY21zIHtcbiAgICAgICAgICAgICAgICAuc2xpY2stc2xpZGUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIC5zbGljay1zbGlkZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuc2xpY2stbGlzdCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMCAkc2V0dGluZy1ncmlkLXNwYWNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcHJvZHVjdC1zZXQge1xuICAgICAgICAgICAgbWFyZ2luOiAwIHJlbSgtMTApO1xuXG4gICAgICAgICAgICAuc2xpY2stc2xpZGUge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCByZW0oMTApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAgICAgLnNsaWNrLXNsaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXByb2R1Y3Qtc2V0LXdpZGdldCB7XG4gICAgICAgICAgICAuc2xpY2stc2xpZGUge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IHJlbSg0MDApO1xuICAgICAgICAgICAgICAgIHdpZHRoOiByZW0oMjgwKTtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgcmVtKDEwKTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwICRzZXR0aW5nLWdyaWQtc3BhY2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tanVtYm90cm9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWluLWhlaWdodDogcmVtKDM5MCk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiByZW0oNTA1KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnNsaWNrLXNsaWRlIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgcmVtKDEpO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogcmVtKDUpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHJlbSg1KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5zbGljay1kb3RzIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtKDE4KTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtKDI0KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCByZW0oNik7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiByZW0oMTApO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IHJlbSgxMCk7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMDtcblxuICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogcmVtKDUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiByZW0oNSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJi5zbGljay1hY3RpdmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiByZW0oMTApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogcmVtKDEwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAkc2V0dGluZy1jb2xvci1ncmF5LTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuc2xpY2stYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICB3aWR0aDogcmVtKDMwKTtcbiAgICAgICAgICAgIGhlaWdodDogcmVtKDMwKTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMzApO1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMjUpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSgtMzApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5zbGljay1wcmV2IHtcbiAgICAgICAgICAgIGxlZnQ6IHJlbSg5KTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiByZW0oMTUpO1xuICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkeHh4bCkge1xuICAgICAgICAgICAgICAgIGxlZnQ6IHJlbSgtMzApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnNsaWNrLW5leHQge1xuICAgICAgICAgICAgcmlnaHQ6IHJlbSg5KTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtKC0xNSk7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IHJlbSgxNSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkeHh4bCkge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiByZW0oLTMwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJyYW5kIHtcbiAgICAgICAgICAgIC5zbGljay1hcnJvdyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnNsaWNrLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IHJlbSgtMjMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuc2xpY2stbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IHJlbSgtMjMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBpbmNsdWRlIHNob3AtdWktc2xpY2stY2Fyb3VzZWxcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc21hcnQtcHJvamVjdC1wcmljZS1yZXF1ZXN0KCRuYW1lOiAnLnNtYXJ0LXByb2plY3QtcHJpY2UtcmVxdWVzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdG9vbHRpcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktc21hcnQtcHJvamVjdC1wcmljZS1yZXF1ZXN0O1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZS1hY3Rpb24gKCRuYW1lOiAnLnRhYmxlLWFjdGlvbi1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IHJlbSg0KSByZW0oMTUpO1xuICAgICAgICBib3JkZXI6IHJlbSgxKSBzb2xpZCAkc2V0dGluZy1jb2xvci1ncmF5LTI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRzZXR0aW5nLWJvcmRlci1yYWRpdXM7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJHNldHRpbmctZ3JpZC1zcGFjZS1tb2JpbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10aWdodCB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IHJlbSgzKTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbSgzKTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhtZWRpdW0pO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtaGVpZ2h0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogcmVtKDMpO1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTEpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgxMyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktdGFibGUtYWN0aW9uKCk7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlLWFjdGlvbiAoJG5hbWU6ICcudGFibGUtYWN0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBwYWRkaW5nLXRvcDogJHNldHRpbmctZ3JpZC1zcGFjZTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206ICRzZXR0aW5nLWdyaWQtc3BhY2UtbW9iaWxlO1xuICAgICAgICBtYXJnaW46IDAgcmVtKC00KTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3BwaW5nLWxpc3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTc7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW0oOSkgcmVtKDIwKTtcbiAgICAgICAgICAgIG1hcmdpbjogcmVtKDgpIDAgMDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbm5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luOiAwIHJlbSgtNCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgcmVtKDQpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLXRhYmxlLWFjdGlvbigpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aWxlKCRuYW1lOiAnLnRpbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNztcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBmbGV4OiBub25lO1xuICAgICAgICAgICAgbWFyZ2luOiByZW0oMzIpIHJlbSgwKSByZW0oMzIpIHJlbSgzMik7XG4gICAgICAgICAgICB3aWR0aDogcmVtKDMyKTtcbiAgICAgICAgICAgIGhlaWdodDogcmVtKDMyKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTQ7XG5cbiAgICAgICAgICAgICY6b25seS1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiByZW0oMzIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWFpbiB7XG4gICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgICAgcGFkZGluZzogcmVtKDMyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCA0KTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBtYXBfZ2V0KCRzZXR0aW5nLWZvbnQtd2VpZ2h0LCBtZWRpdW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS0yO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgZGVmYXVsdCk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogbWFwX2dldCgkc2V0dGluZy1mb250LXdlaWdodCwgcmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSArICZfX3RleHQge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtKDUpO1xuICAgICAgICB9XG5cbiAgICAgICAgKyAjeyZ9IHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSgxMCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktdGlsZSgpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZ2xvYmFsJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY29sb3Itc2VsZWN0b3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvcHJpbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaWUnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvaW1wb3J0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2Fycm93JztcblxuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3JhZGl1cyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvaW1wb3J0JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudCgkbmFtZTogJy5jb21tZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC1mb3JtKCRuYW1lOiAnLmNvbW1lbnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hhbmRsZXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LXRocmVhZC1saXN0KCRuYW1lOiAnLmNvbW1lbnQtdGhyZWFkLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNnJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtdGFnLWxpc3QoJG5hbWU6ICcudGFnLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWxpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtIDEuNHJlbSAwLjFyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC42cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCgkbmFtZTogJy5idXNpbmVzcy11bml0LWFkZHJlc3MtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLW1lc3NhZ2Uge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXNpbmVzcy11bml0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgkbmFtZTogJy5jb21wYW55LXVzZXItbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hhcmUtbGlzdCgkbmFtZTogJy5zaGFyZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNC42ODhyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1kaXNhYmxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb25maWd1cmF0aW9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtaW5mbygkbmFtZTogJy5zaG9wcGluZy1saXN0LWluZm8nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW1lc3NhZ2UoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LW92ZXJ2aWV3KCRuYW1lOiAnLnNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcGVybWlzc2lvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICZfX2Z1bGwtYWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgI3Byb2R1Y3QtcXVpY2stYWRkLWZvcm0td3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcC1saXN0LWl0ZW0oJG5hbWU6ICcuc2hvcC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjFyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3duZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWNvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjY2VzcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wcGluZy1saXN0LW5hdmlnYXRpb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zdWJ0b3RhbC1wcmljZSgkbmFtZTogJy5zdWJ0b3RhbC1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4udG9nZ2xlci1hY2NvcmRpb24ge1xuXG4gICAgJl9faWNvbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHdpZHRoOiByZW0oMTYpO1xuICAgICAgICBoZWlnaHQ6IHJlbSgxNik7XG4gICAgICAgIHBhZGRpbmc6IHJlbSgyKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIH1cblxuICAgICZfX2ljb24tbm8tc2lkZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHdpZHRoOiByZW0oMTYpO1xuICAgICAgICBoZWlnaHQ6IHJlbSgxNik7XG4gICAgICAgIHBhZGRpbmc6IHJlbSgyKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIH1cblxuICAgICZfX2l0ZW0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxLjhyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgyNik7XG5cbiAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgLnRvZ2dsZXItYWNjb3JkaW9uX19pY29uLFxuICAgICAgICAgICAgLnRvZ2dsZXItYWNjb3JkaW9uX19pY29uLW5vLXNpZGUge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1hY2NvcmRpb24tY29tcG9uZW50ICgkbmFtZTogJy50b2dnbGVyLWFjY29yZGlvbi1jb21wb25lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS00O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE1KTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW0oNykgMDtcblxuICAgICAgICAgICAgJi5pcy1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlxcMDBiYlwiO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDIwKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDEycHg7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAwLjNzIGVhc2U7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IHJlbSgxNSk7XG5cbiAgICAgICAgICAgICYuaXMtYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiBmaXQtY29udGVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0td3JhcHBlciB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMTApO1xuXG4gICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgxNCk7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICB3aWR0aDogcmVtKDE2KTtcbiAgICAgICAgICAgIGhlaWdodDogcmVtKDE2KTtcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbSgyKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS10b2dnbGVyLWFjY29yZGlvbi1jb21wb25lbnQoKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL3ByaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2llJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9oZWxwZXJzL2ltcG9ydCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9hcnJvdyc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZWZmZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2ltcG9ydCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBlcnNpc3RlbnQtY2FydC1zaGFyZS13aWRnZXQtdXJsLW1hc2stZ2VuZXJhdG9yKCRuYW1lOiAnLnVybC1tYXNrLWdlbmVyYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1wYWNrYWdpbmctdW5pdC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1wYWNrYWdpbmctdW5pdC13aWRnZXQtcGFja2FnaW5nLXVuaXQtY2FydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItZm9ybSgkbmFtZTogJy5xdWljay1vcmRlci1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgICZfX3Jvd3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdygkbmFtZTogJy5xdWljay1vcmRlci1yb3cnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93LXBhcnRpYWwoJG5hbWU6ICcucXVpY2stb3JkZXItcm93LXBhcnRpYWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93cygkbmFtZTogJy5xdWljay1vcmRlci1yb3dzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhlYWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1b3RlLXJlcXVlc3QtYWdlbnQtd2lkZ2V0LXJlcXVlc3Qtc3RhdHVzKCRuYW1lOiAnLnJlcXVlc3Qtc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1pbmZvKCRuYW1lOiAnLnRvb2x0aXAtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICRvZmZzZXQ6IDVweDtcbiAgICAgICAgJGJvcmRlcldpZHRoOiA1cHg7XG4gICAgICAgICRib3JkZXJDb2xvcjogIzY2NjtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihhbGwpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiByZW0oMjAwKTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktdG9vbHRpcDtcbiAgICAgICAgZm9udC1zaXplOiByZW0oMTUpO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcbiAgICAgICAgcGFkZGluZzogMCByZW0oMTApO1xuXG4gICAgICAgICZfX2FjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAmLS1oZWFkbGluZSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RpcmVjdGlvbiB7XG4gICAgICAgICAgICAmLS10b3Age1xuICAgICAgICAgICAgICAgIGJvdHRvbTogY2FsYygxMDAlICsgI3skb2Zmc2V0fSk7XG4gICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYXJyb3ctZGlyZWN0aW9uKCRib3JkZXJXaWR0aCwgJGJvcmRlckNvbG9yLCB0b3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi0tcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoMTAwJSArICN7JG9mZnNldH0pO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYXJyb3ctZGlyZWN0aW9uKCRib3JkZXJXaWR0aCwgJGJvcmRlckNvbG9yLCByaWdodCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgICAgIHRvcDogY2FsYygxMDAlICsgI3skb2Zmc2V0fSk7XG4gICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYXJyb3ctZGlyZWN0aW9uKCRib3JkZXJXaWR0aCwgJGJvcmRlckNvbG9yLCBib3R0b20pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi0tbGVmdCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IGNhbGMoMTAwJSArICN7JG9mZnNldH0pO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYXJyb3ctZGlyZWN0aW9uKCRib3JkZXJXaWR0aCwgJGJvcmRlckNvbG9yLCBsZWZ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLWluZm87XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9nbG9iYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9jb2xvci1zZWxlY3Rvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9wcmludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvaGVscGVycy9pbXBvcnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL2hlbHBlcnMvYXJyb3cnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vc3R5bGVzL3NldHRpbmdzL2VmZmVjdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvc2V0dGluZ3MvcmFkaXVzJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9zZXR0aW5ncy9pbXBvcnQnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50KCRuYW1lOiAnLmNvbW1lbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC1jb21tZW50LWZvcm0oJG5hbWU6ICcuY29tbWVudC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGFuZGxlcnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtdGhyZWFkLWxpc3QoJG5hbWU6ICcuY29tbWVudC10aHJlYWQtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2cmVtO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21tZW50LXdpZGdldC10YWctbGlzdCgkbmFtZTogJy50YWctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMS40cmVtIDAuMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWFkZHJlc3MtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYWRkcmVzcy1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0KCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtYWRkcmVzcy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWRlbGV0ZS1tZXNzYWdlKCRuYW1lOiAnLmJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kZWxldGUtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1c2luZXNzLXVuaXQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0KCRuYW1lOiAnLmNvbXBhbnktdXNlci1saXN0Jykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwZXJzaXN0ZW50LWNhcnQtc2hhcmUtd2lkZ2V0LXVybC1tYXNrLWdlbmVyYXRvcigkbmFtZTogJy51cmwtbWFzay1nZW5lcmF0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtcGFja2FnaW5nLXVuaXQtY2FydCgkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcGFja2FnaW5nLXVuaXQtd2lkZ2V0LXBhY2thZ2luZy11bml0LWNhcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLWZvcm0oJG5hbWU6ICcucXVpY2stb3JkZXItZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICAmX19yb3dzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3coJG5hbWU6ICcucXVpY2stb3JkZXItcm93Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdy1wYXJ0aWFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdWljay1vcmRlci1wYWdlLXF1aWNrLW9yZGVyLXJvd3MoJG5hbWU6ICcucXVpY2stb3JkZXItcm93cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oZWFkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBxdW90ZS1yZXF1ZXN0LWFnZW50LXdpZGdldC1yZXF1ZXN0LXN0YXR1cygkbmFtZTogJy5yZXF1ZXN0LXN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLWluLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaGFyZS1saXN0KCRuYW1lOiAnLnNoYXJlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE0LjY4OHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICYtLWRpc2FibGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbmZpZ3VyYXRpb24tYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1pbmZvKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtaW5mbycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtbWVzc2FnZSgkbmFtZTogJy5zaG9wcGluZy1saXN0LW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3Qtb3ZlcnZpZXcoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXBlcm1pc3Npb24oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wZXJtaXNzaW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgJl9fZnVsbC1hY2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LXByb2R1Y3QtcXVpY2stYWRkKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAjcHJvZHVjdC1xdWljay1hZGQtZm9ybS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXdpZGdldC1zaG9wLWxpc3QtaXRlbSgkbmFtZTogJy5zaG9wLWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vd25lciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtY291bnQge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWNjZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXN1YnRvdGFsLXByaWNlKCRuYW1lOiAnLnN1YnRvdGFsLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXVzZXItbmF2aWdhdGlvbigkbmFtZTogJy51c2VyLW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDQzcHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWF4KCRtZC1tYXggLSAxKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IHJlbSgxMCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwcHg7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkeGwpIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IHJlbSgxMDApO1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogcmVtKDE1KTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkeGwpIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHJlbSgzMCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICN7JG5hbWV9X19zdWItbmF2IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSBzY2FsZSgxKTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcblxuICAgICAgICAgICAgICAgICAgICAmLS1wdWxsLWxlZnQge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC05NSUpIHNjYWxlKDEpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJHh4eGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTkwJSkgc2NhbGUoMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXVzZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLWJldHdlZW4oJG1kLW1pbiwgJGxnLW1heCkge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogcmVtKDEzNSkgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rLFxuICAgICAgICAmX191c2VyLW5hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS04O1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTUpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KG5vcm1hbCk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtKDE4KTtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1ncmF5LTQsIDI1KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcnQtcXVhbnRpdHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRzZXR0aW5nLWJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgxMSk7XG4gICAgICAgICAgICBtYXJnaW46IHJlbSgzKSByZW0oMCkgcmVtKDMpIHJlbSg2KTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6IHJlbSgxNik7XG4gICAgICAgICAgICBoZWlnaHQ6IHJlbSgxNik7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSg4KTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIHJlbSgzKTtcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTApO1xuICAgICAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiByZW0oMC42KTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgyMik7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiByZW0oMzUpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE2KTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgbWFyZ2luOiByZW0oMTUpIDAgMCByZW0oNSk7XG4gICAgICAgICAgICB3aWR0aDogcmVtKDcpO1xuICAgICAgICAgICAgaGVpZ2h0OiByZW0oNCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItbmF2IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkc2V0dGluZy1ib3JkZXItcmFkaXVzO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE1KTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhyZWd1bGFyKTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjkzO1xuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IHJlbSgwLjIpO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuXG4gICAgICAgICAgICAmLS10b3VjaC1hY3RpdmUge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHRyYW5zZm9ybSk7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSBzY2FsZSgwKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgY2VudGVyO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgcmVtKDE4KSByZW0oMTgpIDAgJHNldHRpbmctY29sb3Itc2hhZG93LTEsIDAgcmVtKDMpIHJlbSgzKSAwICRzZXR0aW5nLWNvbG9yLXNoYWRvdy0xO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IHJlbSgyMSkgcmVtKDM4KSByZW0oMjEpIHJlbSgyOSk7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiByZW0oLTUpO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiByZW0oMTApO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IHJlbSgxMCk7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYtLXB1bGwtbGVmdDo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogOTUlO1xuXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkeHh4bCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogOTAlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLW5hdi1pbm5lciB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiByZW0oMSkgc29saWQgJHNldHRpbmctY29sb3ItZ3JheS02O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLW5hdi1jbG9zZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IHJlbSg2KTtcbiAgICAgICAgICAgIGxlZnQ6IHJlbSg4KTtcbiAgICAgICAgICAgIHdpZHRoOiByZW0oNDApO1xuICAgICAgICAgICAgaGVpZ2h0OiByZW0oNDApO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItbmF2LXRpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbSgxMikgcmVtKDYwKSByZW0oMTQpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjc7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLW5hdi1hY3Rpb25zIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbSgyMSkgcmVtKDE2KSByZW0oMzApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogcmVtKDE2KSByZW0oMjQpIHJlbSgxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1uYXYtbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS0zO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS11c2VyLW5hdmlnYXRpb247XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=*/